Coreseek 中文搜索引擎

Coreseek 中文搜索引擎

如今在一个网站或者一个 APP 中,站内搜索的功能很大程度上已经是必不可少的功能了。在这篇文章中我会详细的介绍如何为网站或者 APP 开发一个站内搜索的功能。

Coreseek 简述

Coreseek 是一个基于 Sphinx 开发的支持中文搜索的搜索引擎。具有强大的分词模式,而且支持多种模式的匹配。而且可以支持多种数据源。将这个嵌入到引用中也是非常便捷的,下面来说以下详细的配置方式。本文的配置环境为 Ubuntu 14.04,安装的软件以 Sphinx-2.1.3coreseek-4.1 为例。安装包可自行去官网下载。

安装 Sphinx 与 Coreseek

安装 Sphinx
tar zxvf sphinx-2.1.3.tar.gz
cd sphinx-2.1.3
./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql

sudo make & make install

其中 --prefix 是指定安装路径,--with-mysql 是指mysql的安装路径。在这个地方需要特别注意如果 mysql 是编译安装在 /usr/local/mysql ,按照以上的方法可以顺利安装,如果是采用 apt-get 方法进行安装的,则上面的安装方法会失败,那么就得采用以下的安装方法:

--with-mysql-includes=/usr/include/mysql
--with-mysql-libs=/usr/lib/mysql

这样就可以将 Sphinx 顺利的编译安装。安装完成后,就会在 /usr/local/sphinx/bin 目录下生成以下的目录:

indexer #创建索引命令
searchd #启动进程命令
search #命令行搜索命令

然后在 /usr/local/sphinx/ect 目录下修改配置文件

sudo cp sphinx.conf.dist sphinx.conf
Coreseek 安装
tar zxvf coreseek-4.1.tar.gz

在解压完成之后,将会出现两个文件夹:csft-4.1、mmseg-3.2.14。其中 mmseg 是一个非常棒的中文分词算法,中文搜索也是建立在这个分词算法之上的。先来安装 mmseg

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

一般来说上述会出现一个编译错误: "config.status: error: cannot find input file: src/Makefile.in"。这个错误是因为没有安装 automake,在安装完成之后,依次执行以下的命令:

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

安装完成后再安装csft(coreseek):

cd csft-4.1/
sh buildconf.sh
./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/
sudo make && make install

安装完成之后,修改 /usr/local/coreseek/etc 中的配置文件:

sudo cp sphinx.conf.dist csft.conf

然后在上面安装的过程当中,也会有一些坑,具体解决方法见这篇文章。基本上,配置到这里就完成了,如果需要在程序中使用这些,就需要做一些额外的配置。具体见之前的参考文章,这篇文章主要是用来解决编译安装过程中的一些坑。在安装完成之后,如果要使用这个搜索引擎则需要做以下的事情:

  • 有数据源
  • 建立 sphinx配置文件
  • 生成索引
  • 启动 searchd 服务进程,默认端口是9312
  • 使用php(以php为例)去连接 sphinx 服务。

参考资料

微信公众号

© 2018 ray