로그인

검색

스핑크스 검색 모듈

Mysql 이나 Postgresql 등의 데이터베이스를 사용할 경우 통합 검색 속도를 높이기 위한 스핑크스 검색 엔진 모듈입니다.

자료 분류 모듈 0 / 0
라이선스 Apache License 2.0
제작자 ironyjk
홈페이지 xe.embian.com/xe/openmodule/407
설치 경로 ./modules/sphinx
최초 등록일 2011-02-09 00:00 전체 다운로드 0
최근 버전 0.2 다운로드

해당 자료는 라이믹스2에서 동작여부가
확인되지 않았습니다.

라이믹스2 동작 인증하기

다운로드 0
최근 업데이트 2011-02-09 00:00 0 / 0

목적:
 
Mysql 이나 Postgresql 등의 데이터베이스를 사용할 경우 통합 검색 속도를 높이기 위한 스핑크스 검색 엔진 모듈입니다. 

개요:
 
빠르고 가벼운 오픈소스 검색엔진인 sphinx 를 사용하여 빠른 통합검색을 지원합니다.  
빠른 검색을 위해 데이터베이스를 마이그레이션하지 않아도 되기 때문에, 적용 및 유지보수가 용이합니다.

장점:
 
nLucene 모듈과 비교하여 다양한 DB 연동과 빠른 인덱싱 시간을 지원합니다. 

설치방법:
Ubuntu Linux 10.10 Server Edition 을 기준으로 스핑크스 검색엔진과 스핑크스 모듈의 설치 방법을 설명합니다. 
1. 설치 전 다음의 명령어로 스핑크스와 필요 패키지들을 설치합니다

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 검색엔진을 사용합니다. 

sphinx_setup.jpg



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 에 부탁드립니다.

이 자료는 XE 공식 자료실에서 자동으로 다운로드한 자료입니다.
라이믹스 최신버전에서는 동작하지 않을 수 있습니다.

원본 : [공식 자료실 게시글로 이동]