Coreseek-带中文分词的Sphinx

时间:2021-01-28 21:33:58

Sphinx并不支持中文分词, 也就不支持中文搜索, Coreseek = Sphinx + MMSEG(中文分词算法)

1.下载

  1).到官网下载

  2).解压后有三个文件夹

    csft-3.2.14: Sphinx

    mmseg-3.2.14: 中文分词组件

    testpack: 接口开发包

2.安装

  1).先安装mmseg, 因为Coreseek会用到

cd mmseg-3.2.
./configure --prefix=/usr/local/mmseg

  此时如果Makefile文件创建成功, 但是出现了一个config.status: error: cannot find input file: src/Makefile.in错误信息, 使用以下命令重新编译

aclocal
libtoolize --force
automake --add-missing
autoconf
autoheader
make clean
./configure --prefix=/usr/local/mmseg

  执行安装

make && make install

  2).安装csft(即Coreseek)

./configure --prefix=/usr/local/coreseek --with-mysql=/usr/local/mysql --with-mmseg=/usr/local/mmseg --with-mmseg-includes=/usr/local/mmseg/include/mmseg --with-mmseg-libs=/usr/local/mmseg/lib
make && make install

3.中文分词算法分类

  1).基于字符串匹配的分词方法

    基于字典, 进行挨个的词条匹配

    三个要素: 分词词典, 文本扫描顺序, 匹配原则

    扫描顺序: 正向, 逆向, 双向

    匹配原则: 最大, 最小, 逐词,最佳

  2).基于理解的分词方法, 正在测试阶段

  3).基于统计的分词方法, 可以根据相邻的字出现的次数和频率等自动识别生词, 自动消除歧义

4.配置Coreseek

cp /usr/local/coreseek/etc/sphinx.conf.dist /usr/local/coreseek/etc/csft.conf #与Sphinx不同的是配置文件名不同
#接下来按照Sphinx配置即可, 注意索引中的此两处配置
#charset_type = zh_cn.utf-
#charset_dictpath = /usr/local/mmseg/etc/

5.生成索引

cd /usr/local/coreseek/bin
./indexer --all

6.查找内容

cd /usr/local/coreseek/bin
./search 随永杰