sphinx全文检索引擎

软件设计 2017-04-20

今天刚刚学习了一下,就直接分享上去,有些还没有接触,如果有问题请指正,谢谢

sphinx是什么?

Sphinx是一个全文检索引擎。主要为其他应用提供高速、低空间占用、高结果 相关度的全文搜索功能。

Sphinx可以非常容易的与SQL数据库和脚本语言集成。

当前系统内置MySQL和PostgreSQL 数据库数据源的支持,也支持从标准输入读取特定格式 的XML数据。

通过修改源代码,用户可以自行增加新的数据源(例如:其他类型的DBMS 的原生支持)

Sphinx的特性?

高速的建立索引(在当代CPU上,峰值性能可达到10 MB/秒);

高性能的搜索(在2 – 4GB 的文本数据上,平均每次检索响应时间小于0.1秒);

可处理海量数据(目前已知可以处理超过100 GB的文本数据, 在单一CPU的系统上可 处理100 M 文档);

提供了优秀的相关度算法,基于短语相似度和统计(BM25)的复合Ranking方法;

支持分布式搜索;

支持短语搜索

提供文档摘要生成

可作为MySQL的存储引擎提供搜索服务;

支持布尔、短语、词语相似度等多种检索模式;

文档支持多个全文检索字段(最大不超过32个);

文档支持多个额外的属性信息(例如:分组信息,时间戳等);

支持断词;

中文的全文检索和英文等latin系列不一样,后者是根据空格等特殊字符来断词,而中文是根据语义来分词。目前大多数数据库尚未支持中文全文检索,如Mysql。故,国内出现了一些Mysql的中文全文检索的插件,做的比较好的有hightman的中文分词。Sphinx如果需要对中文进行全文检索,也得需要一些插件来补充。其中我知道的插件有 coreseek 和 sfc 。 Coreseek是现在用的最多的sphinx中文全文检索,它提供了为Sphinx设计的中文分词包LibMMSeg 。并提供了多个系统的二进制发行版,其中有rpm,deb及windows下的二进制包。

接下来主要介绍coreseek在Windows下的使用

1 先下载coreseek-4.1-win64-pinyin-poly.zip

2 打开将文件放到phpStudy下的www目录下,更改目录里面etc文件夹下的csft_mysql.conf文件,如图

改数据库和数据表结构,在var目录下的test文件夹下有一个数据库直接用就行

修改路径,为自己的www文件夹

修改完成后保存

3 用管理员操作命令行,进入www目录下的coreseek/bin目录输入indexer -c ../etc/csft_mysql.conf --all

sphinx全文检索引擎

接着继续输入searchd -c ../etc/csft_mysql.conf

sphinx全文检索引擎

报错后请查看自己的路径是否正确或改正

sphinx全文检索引擎

改完重新输入后就会看到

sphinx全文检索引擎

那么这就可以支持英文检索了,中文检索目前查到后直接乱码,还在研究中.....

相关推荐