XE 공식 자료실
- 제작자
- ironyjk
- 등록일
- 2011-02-09
- 다운로드 수
- 1,707
- 링크1
- xe.embian.com/xe/openmodule/407
Mysql 이나 Postgresql 등의 데이터베이스를 사용할 경우 통합 검색 속도를 높이기 위한 스핑크스 검색 엔진 모듈입니다.
- 라이선스
- Apache License 2.0
- 설치경로
- ./modules/sphinx
- 최초 등록일
- 2011-02-09
- 전체 다운로드
- 1,707
쉬운설치로 바로 체험할 수 있습니다
상세 설명
sudo apt-get install sphinxsearch
sudo apt-get install php-pear php5-dev
sudo apt-get install g++
2. http://sphinxsearch.com/files/sphinx-0.9.9.tar.gz 에서 스핑크스 검색엔진을 다운로드 받으신 후 다음의 명령어를 통해 라이브러리를 컴파일/설치 합니다.
tar xvfz sphinx-0.9.9.tar.gz
cd ./sphinx-0.9.9/api/libsphinxclient
sudo make install
sudo pecl install sphinx
만일 sock_close 함수 관련하여 컴파일에 실패할 경우 sphinxclient.c 의 1216 번째 줄의 sock_close 함수 선언에서 'static' 을 삭제한 후 make install 이후 부터 재 진행합니다.
3. /etc/php5/apache2/php.ini 파일의 ' Dynamic Extensions' 부분 (예를 들면 940 번째 줄) 에 다음의 선언을 추가합니다.
extension=sphinx.so
4. /etc/default/sphinxsearch 파일을 다음과 같이 편집하여 스핑크스 데몬이 부팅시에도 시작되게 합니다.
START=yes
5. 첨부된 sphinx.conf 파일을 다운로드 받으신 후 다음의 부분의 데이터 베이스 설정을 편집하여 /etc/sphinxsearch/sphinx.conf 에 복사합니다.
# 데이터 소스 타입. mysql 외 pgsql, mssql, xmlpipe, odbc 등을 지원type = mysql
# SQL 접속 정보 세팅
sql_host = localhost
sql_user = DB사용자아이디
sql_pass = DB사용자비밀번호
sql_db = xe
sql_port = 3306
# 본 쿼리를 기반으로 데이터 인덱싱 - 테이블 머리말이 XE 가 아닐 경우 편집할 것
sql_query = \
SELECT document_srl as id, UNIX_TIMESTAMP(regdate) as regdate, module_srl, title, content, tags \
FROM xe_documents
# 본 쿼리를 기반으로 데이터 인덱싱 - 테이블 머리말이 XE 가 아닐 경우 편집할 것
sql_query = \
SELECT comment_srl as id, UNIX_TIMESTAMP(regdate) as regdate, module_srl, content \
FROM xe_comments
자세한 옵션은 sphinxsearch.com 을 참고합니다.
6. 스핑크스의 인덱스를 생성 후 아파치와 스핑크스를 재 시작합니다.
sudo indexer --all
sudo /etc/init.d/sphinxsearch start
sudo /etc/init.d/apache2 restart
7. /etc/crontab 에 다음의 명령을 추가하여 매시간 인덱스를 재생성합니다.
16 * * * * root indexer --all --rotate > /dev/null 2>&1
8. 첨부 모듈파일 (sphinx.zip)을 다운 받아서 modules 하위에 sphinx 디렉토리가 되도록 압축을 풉니다.
9. 관리자 화면에서 부가기능 설정 -> Sphinx 검색 메뉴로 접속하여 다음과 같이 설정하면 통합 검색시 sphinx 검색엔진을 사용합니다.
10. (옵션) 로그 순환을 위해서 /etc/logrotate.d/sphinx 파일을 생성하고 다음과 같은 내용을 삽입합니다.
/var/log/searchd.log /var/log/sphinx_query.log {
weekly
rotate 5
compress
delaycompress
create 640 root root
postrotate
killall -SIGUSR1 searchd
endscript
}
11. (옵션) 최다 검색어를 구하기 원하는 경우 다음 명령어를 /etc/crontab 에 추가합니다. ( xe 가 /var/www/xe 외의 곳에 있을 경우에는 디렉토리 수정 )
16 0 * * * root cd /var/www/xe/modules/sphinx/ && sh ./getTopSearches.sh > /dev/null 2>&1
참고사항:
- 본 모듈은 Embian 의 지원을 통해서 제작되었습니다.
- 다운로드 게시판은 평가를 위한 공간이라서 질문을 받을 수가 없습니다. 질문은 http://xe.embian.com 에 부탁드립니다.