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-win32etc/ 测试时,如果出现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=/path/to/stowords.txt的位置 可选设置,表示停止词文件,该文件中的词汇(也可以为单字)不参与搜索;文件格式为普通UTF-8文本文件,每行一个; #charset_table=...... ngram_len=0 必须设置,表示取消原有的一元字符切分模式,不使其对中文分词产生干扰; charset_table的配置需要注释掉! ngram_len的配置需要设置为0! http://www.coreseek.cn/products-install/coreseek_mmseg/[zhuan] |
-
上一篇:[转]sphinx【coreseek】的工作原理详解 下一篇:coreseek(sphinx)错误:WARNING: attribute 'id' not found - IGNOR