sphinx 就全文检索技术,在一个大型的 站,有上亿条的数据要检索时,用传统的 mysql语名来查询的话,可能要几分钟甚至十多分钟,没有效率,浪费资源,这时我们可以使用sphinx的全文检索功能,就可以在几秒中之内查到自己想要的数据
sphinx的工作原理大至可以这样理解
它快速检索数据库中的每一条记录,然后把记录中的词分出来,并维护一个 表,表中的记录是分出来的词,对应的数据库的那一条数据的主键,当我们拿到主键后,就可以直接到,数据库表中得到这些数据,提高效率
因为英文的中间会有 空格 作用词与词之间的分隔,而汉语中没有空格作为界限,所以中文分词对sphinx来说是比较困难的,所以有了mmseg ,它可以很好的帮助sphinx来进行中文分词
因此就有了 coreseek 软件,其实限上就是 coreseek = sphinx + mmseg
安装coreseek
从 上下载 coreseek 的软件源码包 coreseek-4.1-beta.tar.gz
解压这个包可以得到
csft-1.4(就是sphinx 这是在coreseek中的 ) mmseg-3.2.14(这个就是中文分词) README.txt testpack( 这时种编程语言的类包,比如说,对php 来说可以有两种方法使用sphinx
第一种方法: 在testpack文件夹中打到 api 文件夹 再找到 sphinxapi.php 以后在php 文件中引入就可以用了, 如,include_once “sphinxapi.php”;
)
一. 因为sphinx的安装要mmseg的支持,所以这里我们先装mmseg
首先建一个mmseg的安装目录 mkdir /usr/local/mmseg
步骤如下 ;
# cd mmseg-3.2.14
# ./configure –prefix=/usr/local/mmseg

这时就yum 安装一下 automake autoconf 还有 libtool (具体的现在还不知道为什么这样做, 上都是说的解决方法而不知为什么)
yum install -y automake autoconf libtool
然后写入以下命令
# aclocal
这条命令会 错,不管它
# libtoolize –force
# automake –add-missing
这条命令也会 warning 不管它
# autoconf
# autoheader
# 再次 ./cofnigure –prefix= /usr/local/mmseg
这次检查就会通过
这之后就 make && make install mmseg安装完成
补充(
)
二。安装csft (也就是sphinx)
进入csft目录 ,会发现,居然没有 configure 的文件,晕,我的办法是和上面的流程一样
Sphinx/Coreseek 4.1 执行 buildconf.sh 错,无法生成configure文件,
解决方案:
1. 在 csft-4.1/buildconf.sh 文件中,查找
后加上
2. 在 csft-4.1/configure.ac 文件中,查找:
改为:
查找:
后面加上
3. 最后,在 csft-4.1/src/sphinxexpr.cpp 文件中, 替换所有:
成为:
以上修改完成后,就生成 ./configure 文件
然后就 make && make install
进入 /usr/local/coreseek/etc目录 因为coreseek的默认配置文件是 csft.conf 所以,把这个目录中的 sphinx.conf.dist 复制一份 为 csft.conf cp sphinx.conf.dist csft.conf
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!