Linux 환경은 CentOS5.5, Ubuntu12.04
1. 소프트웨어 다운로드
sphinx-2.1.3
coreseek-4.1
2. 스핑크스 설치
tar zxvf sphinx-2.1.3.tar.gz //解压sphinx包 cd sphinx-2.1.3 ./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql/
--prefix: 스핑크스 설치 경로 지정
--with-mysql: mysql 설치 경로 지정
sudo make && make install
컴파일 및 설치
성공적으로 설치되면 sphinx는 세 가지 명령을 생성합니다:
indexer 创建索引命令 searchd 启动进程命令 search 命令行搜索命令
참고: 위 명령은 기본적으로 /usr/local/sphinx/bin 디렉터리에 있습니다
3. 스핑크스를 구성하고
cd /usr/local/sphinx/etc
을 사용하여 스핑크스의 etc 디렉터리에 들어가
sudo cp sphinx.conf.dist sphinx.conf
구성 파일을 복사하고 이름을 sphinx.conf로 지정합니다.
이 디렉터리의 example.sql 파일을 test라는 로컬 데이터베이스로 가져옵니다.
구성 정보를 수정하고 데이터베이스 연결 정보를 로컬 데이터베이스 정보로 변경하세요.
그런 다음 다음 명령을 사용하여 데이터를 가져오고 인덱스를 생성합니다.
$ cd /usr/local/sphinx/etc $ sudo /usr/local/sphinx/bin/indexer --all
인덱서 명령을 실행할 때 오류가 보고되는 경우:
ERROR: index 'test1stemmed': sql_connect: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
mysql.sock의 위치 때문에 이 시스템에서 변경된 위치는 /tmp/mysql.sock입니다(mysql 설치 시 설정과 관련). sphinx.conf에서 이 줄의 주석 처리를 제거하세요(앞의 # 기호 제거). :
#sql_sock = /tmp/mysql.sock
위 인덱서 명령을 다시 실행하면 모든 것이 정상입니다.
쿼리를 실행하려면 다음 명령을 사용할 수 있습니다.
$ cd /usr/local/sphinx/etc $ sudo /usr/local/sphinx/bin/search test
검색 프로세스 중에 오류가 보고될 수 있습니다.
index 'test1': search error: query too complex, not enough stack (thread_stack=-2665032K or higher required).
스핑크스에서 시도했습니다. .conf searchd 모듈의 thread_stack 값을 수정해도 문제가 해결되지 않았습니다. 나중에 소스 src1에서 다음 행
#sql_query_info = SELECT * FROM documents WHERE id=$id
을 주석 처리한 후 search 명령을 실행했는데 괜찮았습니다.
백그라운드에서 sphinx를 시작하려면 다음 명령을 사용하세요.
$ cd /usr/local/sphinx/etc $ sudo /usr/local/sphinx/bin/searchd
php 스크립트를 사용하여 검색 명령을 실행할 수 있습니다.
$ cd sphinx/api $ php test.php test
입력 결과는 다음과 같습니다.
Query 'test ' retrieved 3 of 3 matches in 0.022 sec. Query stats: 'test' found 10 times in 6 documents Matches: 1. doc_id=1, weight=101, group_id=1, date_added=2014-01-20 10:07:37 2. doc_id=2, weight=101, group_id=1, date_added=2014-01-20 10:07:37 3. doc_id=4, weight=1, group_id=2, date_added=2014-01-20 10:07:37
4. coreseek 설치
tar zxvf coreseek-4.1.tar.gz
압축을 풀면 csft-4.1, mmseg-3.2.14<🎜라는 두 개의 디렉터리가 나타납니다. >
mmseg를 먼저 설치하세요cd mmseg-3.2.14/ ./configure --prefix=/usr/local/mmseg
sudo apt-get install automake aclocal libtoolize --force 我运行后有一个错误,没管它。 automake --add-missing autoconf autoheader make clean ./configure --prefix=/usr/local/mmseg make sudo make install
cd csft-4.1/ sh buildconf.sh ./configure --prefix=/usr/local/coreseek --with-mysql=/usr/local/mysql/ --with-mmseg=/usr/local/mmseg/ --with-mmseg-includes=/usr/local/mmseg/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg/lib/ sudo make && make install
시작 명령
cd /usr/local/coreseek/bin/ ./searchd
오류가 발생하는 경우: "configure: error : libsphinxclient 헤더를 찾을 수 없습니다."
sudo pecl install sphinx
해결되었습니다!
cd coreseek-4.1/csft-4.1/api/libsphinxclient/ ./configure --prefix=/usr/local/libsphinxclient sudo make && make install
"공유 확장 설치: /usr/lib/php5/20090626/sphinx.so"와 유사한 메시지가 나타나 성공을 나타냅니다.
./configure --with-php-config=/usr/local/php/bin/php-config --with-sphinx=/usr/local/libsphinxclient sudo make && make install