Sphinx + Coreseek 实现中文分词搜索

本文介绍了Sphinx+Coreseek如何用于中文分词搜索,详细讲解了全文检索与数据库检索的区别,中文检索的特点,以及自建全文搜索与第三方搜索服务的差异。Sphinx是一款高性能全文检索引擎,而Coreseek是在Sphinx基础上针对中文搜索进行优化的软件,易于部署和使用。
摘要由CSDN通过智能技术生成

Sphinx + Coreseek 实现中文分词搜索

1. 全文检索

1.1 全文检索 vs. 数据库

全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用。当应用系统的数据以大量的文本信息为主时,采用全文检索技术可以极大的提升应用系统的价值。

  • 数据库搜索,如果搜索范围包括全部正文数据,往往性能很低,用户响应时间长(分钟级,经常超时);而全文检索可以在0.x秒(毫秒级)的时间内将结果反馈给用户;

  • 数据库搜索,一个用户在搜索,往往影响其他用户的对应用系统进行操作;全文检索可以同时支持多个用户并发搜索,其他对应用系统进行操作的用户不受影响;

  • 数据库搜索很难实现多个关键字的复合搜索;而全文检索可以实现多个关键词的复合搜索,包括 “和(AND)”、“或(OR)”、“否(NOT)” 等;

  • 数据库搜索难于对结果进行相关度排序,当检索结果多时,用户往往难于找到最恰当的文档;而全文检索通过统计的研究成果,可以将文档进行相关度排序后,再返回给用户,提高用户的效率;

  • 全文检索还可以对检索结果的数据进行聚类分析(Group, 这里的聚类和NLP里面的聚类算法不同),增进用户对数据分布情况的了解;

  • 全文检索需要用户定期执行建立索引的动作,比直接使用数据库搜索增加了维护的工作;

  • 实现的不完善的全文索引系统容易造成索引与数据库的不一致,反而降低了用户的使用体验;

  • 优秀的全文检索系统支持按照文档的不同字段分配不同的检索权重,根据应用的不同动态的改变结果的排序;

  • 对于中文、日文和韩文而言,全文检索支持分词,进一步缩小了结果集的范围;而数据库检索往往不支持,往往一些与搜索词毫不相干的内容也混入了结果集。

全文检索与数据库检索各有优势,需要根据具体应用场景的不同灵活选择。

1.2 中文检索 vs. 汉化检索

全文检索一般支持中文分词,而往往有人认为将现有的不支持中文分词的全文检索软件加入中文分词模块就可以使用了。这个观点本身没错,但是可以使用不代表可以用好。国内有大量的网站采用Lucene+中文分词的解决方案,但是搜索结果并不乐观。

中文全文检索绝不是简单的将国外的全文检索软件包加入中文分词模块(汉化的全文检索)。相比汉化的全文检索,中文全文检索引擎主要有如下优势:

  • 高精度的分词算法,有统计认为,中文分词的切分精度至少要达到>96% ,才能对全文检索的精度和准确率没有太大影响;

  • 为中文优化过的结果集排序算法,中文用户有使用长短语(短句)进行搜索的习惯,而汉化的全文搜索不考虑词与词之间的位置关系,严重影响了用户的使用体验;

  • 可以利用中文的词性信息,对于不同词性的词,给与不同的排序权重,进一步改善结果集。

1.3 自建全文搜索与使用Google等第三方网站提供的站内全文搜索的区别

对网站设备有要求
自建全文搜索往往需要站长有至少一台独立主机,而使用第三方提供的全文搜索对站点的要求低,虚拟主机即可;不过,出现全文搜索需求的站点通常已经有自己的独立主机了。

索引更新更及时
由于搜索服务在第三方托管,其往往只能按照一定的规则定期更新索引库(往往是几小时、甚至几天才更新一次索引),您网站上的新出现的内容往往不能及时被搜索到;
使用自建全文搜索,可以保证您网站上新出现的内容可以”立即“被检索到。

更适应您的网站
由于中文需要进行分词的特性,导致没有一套通用的词库可以适用于全部网站,要得到优秀的检索结果需要定制一套适用于您网站的词库;
采用第三方的搜索服务,您是无法修改第三方厂商的词库的,而使用自建全文搜索则无此问题。

更有利于您网站的数据整合
有些网站不止是论坛,往往还包括内容管理(CMS)、商城等多种应用,而使用数据库搜索往往需要用户在各个系统中都进行搜索才能找到内容;
第三方的检索无法区别各个系统的不同。而自建的全文搜索可以有效的区分各个数据来源的不同数据,真正做到一次搜索应有尽有,从而改善您网站的访问体验,增加您网站的点击率。

避免您的访问者遇到某些尴尬
第三方的搜索结果页面不是您可以控制修改的,有推荐一些可能会使您网站访问者尴尬的搜索短语的可能。而使用自建全文搜索则完全无此问题。

2. Sphinx

Sp

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值