Coolx World - Programming
sphinx 설치 3.x 버전 (Java)
2019-05-21 18:13 - swindler
3.x버전은 binary 형태로만 제공해서
오히려 설정에 어려움이 더 많은듯 하다.

binary를 압축풀면 끝인데,

실행하면 먼저 mysqlclient 를 못 찾는 경우가 발생함.

다음과 같이 설정함.

export LD_LIBRARY_PATH=/usr/lib64/mysql

그래도 못찾음.
cd /usr/lib64/mysql/ 이 폴더에서 아래와 같이 symbolic link를 생성함

ln -s libmysqlclient.so.18.0.0 libmysqlclient.so


실행할때마다 config 파일 옵션을 주어야 한다.

./indexer --config /etc/sphinx/sphinx.conf --all
./indexer --config /etc/sphinx/sphinx.conf --all --rotate

./searchd --config /etc/sphinx/sphinx.conf


접속은 다음과 같이 한다.
mysql -h0 -P9306



설정파일
/etc/sphinx/sphinx 파일은 기본적으로 2.x와 비슷하다.


source sph_VIDEO
{
type = mysql

sql_host = localhost
sql_user = root
sql_pass =
sql_db = lab
sql_port = 3306 # optional, default is 3306

sql_sock = /tmp/mysql.sock

sql_query_pre = SET NAMES utf8

sql_query = SELECT SEQ, ID VID, TITLE, TAG, HASH_TAG FROM VIDEO

sql_field_string = VID
sql_field_string = TITLE
sql_field_string = TAG
sql_field_string = HASH_TAG

sql_attr_uint = group_id
sql_attr_timestamp = date_added
sql_ranged_throttle = 0
}

index sph_VIDEO
{
source = sph_VIDEO

path = /data/sphinx-3.1.1/data/lab

charset_table = 0..9, A..Z->a..z, _, a..z, U+410..U+42F->U+430..U+44F, U+430..U+44F

docinfo = extern

dict = keywords
mlock = 0
morphology = none
min_word_len = 1

ngram_len = 1

ngram_chars = U+4E00..U+9FBB, U+3400..U+4DB5, U+20000..U+2A6D6, U+FA0E, U+FA0F, U+FA11, U+FA13, U+FA14, U+FA1F, U+FA21, U+FA23, U+FA24, U+FA27, U+FA28, U+FA29, U+3105..U+312C, U+31A0..U+31B7, U+3041, U+3043, U+3045, U+3047, U+3049, U+304B, U+304D, U+304F, U+3051, U+3053, U+3055, U+3057, U+3059, U+305B, U+305D, U+305F, U+3061, U+3063, U+3066, U+3068, U+306A..U+306F, U+3072, U+3075, U+3078, U+307B, U+307E..U+3083, U+3085, U+3087, U+3089..U+308E, U+3090..U+3093, U+30A1, U+30A3, U+30A5, U+30A7, U+30A9, U+30AD, U+30AF, U+30B3, U+30B5, U+30BB, U+30BD, U+30BF, U+30C1, U+30C3, U+30C4, U+30C6, U+30CA, U+30CB, U+30CD, U+30CE, U+30DE, U+30DF, U+30E1, U+30E2, U+30E3, U+30E5, U+30E7, U+30EE, U+30F0..U+30F3, U+30F5, U+30F6, U+31F0, U+31F1, U+31F2, U+31F3, U+31F4, U+31F5, U+31F6, U+31F7, U+31F8, U+31F9, U+31FA, U+31FB, U+31FC, U+31FD, U+31FE, U+31FF, U+AC00..U+D7A3, U+1100..U+1159, U+1161..U+11A2, U+11A8..U+11F9, U+A000..U+A48C, U+A492..U+A4C6

html_strip = 0

}

charset_table, ngram_chars는 한글 검색을 위해서 위와같이 지정해야 한다.

ngram_len : 1로 설정하면 한 단어씩 색인된다.
기본값은 0이고, 0으로 설정하면 n-grams가 disable 된다는데 이 부분에 대해서는 아직 잘 모르겠다.

min_infix_len : 검색할때 반드시 매칭되어야 하는 최소 문자수. 기본값은 0이다.
어떤 문서에서는 2로 설정하라고 되어 있다.


Copyright © 1999-2020, swindler.