coreseek-3.2.13兼容sphinx-0.9.9的配置,可以不經修改,即可直接使用。
不過,為了更好的針對中文進行檢索,則需要使用coreseek新增的配置參數,設置中文分詞。
以下是中文分詞的核心配置,請仔細閱讀,應用到自己的配置之中:
source 數據源名稱a { #...... #該部分的配置,直接采用sphinx的配置,無需更改即可直接使用 #...... }
index 索引名稱a {#以下部分的配置,直接采用sphinx的配置,無需更改即可直接使用 #...... source = 數據源名稱a #對應到source path = var/data/數據源名稱a docinfo = extern mlock = 0 morphology = none min_word_len = 1 html_strip = 0 #...... #以上部分的配置,直接采用sphinx的配置,無需更改即可直接使用#以下部分為中文分詞核心配置 #stopwords = /path/to/stowords.txt的位置 charset_dictpath = /usr/local/mmseg3/etc/ charset_type = zh_cn.utf-8 #charset_table = .................... #需將原有 的該配置注釋掉 ngram_len = 0 #以上部分為中文分詞核心配置}
mmseg.ini配置: mmseg配置文件之中,可以配置英文和數字的切分細則(例如設置china2008作為整體還是切分為china、2008),詳情請查看mmseg.ini配置
中文分詞核心配置說明:
charset_dictpath=/usr/local/mmseg3/etc/
表示詞典文件的目錄,該目錄下必須有uni.lib詞典文件存在;
uni.lib詞典文件的制作,請參考:mmseg詞典的構造;特別注意,更換或者修改詞典後,需要重新索引數據並重啟searchd才能生效。
因為BSD/linux默認安裝在/usr/local/mmseg3/etc下面,則使用/usr/local/mmseg3/etc/即可;
如果是在Windows系統下,則為詞典所在的實際路徑,結尾必須使用/,例如:F:\coreseek-3.2.13-win32\etc/
測試時,如果出現Unigram dictionary load Error或者Segmentation fault,一般為詞典路徑設置不正確。
charset_type=zh_cn.utf-8
表示啟用中文分詞功能;否則中文分詞功能無效,使用sphinx的其他處理模式。
啟用中文分詞功能後,需要source數據源之中,讀取的數據編碼字符集為UTF-8,否則無法正確處理;
如果是xml,則正確輸出為UTF-8編碼格式即可;
如果是MySQL,則設置讀取數據輸出字符集為UTF-8即可:
MySQL4.1起可以通過SET NAMES UTF8設定輸出字符集為UTF-8,即使原始數據為GBK也可;
MySQL4.1以下版本,請直接聯系我們解決GBK或者Latin1輸出為UTF-8問題;
#stopwords=......
表示停止詞文件,該文件中的詞匯不參與搜索;文件格式為普通UTF-8文本文件,每行一個;
#charset_table=......
ngram_len=0
表示取消原有的一元字符切分模式,不對中文分詞產生干擾;
charset_table的配置需要注釋掉!
ngram_len的配置需要設置為0!