斯芬克斯的拼写纠错?

时间:2010-05-19 09:11:02

标签: php full-text-search lucene sphinx

我准备将基于Sphinx的搜索整合到网站中,但我发现没有内置的拼写纠正支持。

网上的人建议使用pspell或其他第三方库来完成工作,但问题是我要搜索的数据,主要包含“技术”术语,如品牌名称,因此我不知道认为共同的图书馆将包括它们。

另一方面,Xapian表示根据索引的数据进行拼写纠正支持,这正是我想要的。是否值得使用Xapian?我仍然对我应该使用哪个全文搜索引擎感到困惑:Sphinx看起来相当不错,但缺少Xapian(或者Lucene?)的一些很酷的功能,而后者看起来像社区较小,文档较少。 / p>

我认为我可以使用自定义的单词来解决pspell词典中没有的单词,但是我不确定这是否会带来明显的性能损失?我将在一个非常受欢迎的网站上使用搜索系统进行聚光灯搜索(在输入的每个字母上通过ajax单独搜索),因此性能很重要。

理想情况下,我想让一些像品牌这样的字段比普通字典更优先,但我想这并不重要,因为大多数品牌名称与其他字样截然不同。

对于自定义全文搜索引擎的一般设计的任何建议也是受欢迎的。

由于

2 个答案:

答案 0 :(得分:5)

Sphinx没有内置的拼写纠错功能,但可以使用Sphinx实现。只有一篇关于这方面的操作文章(由Sphinx作者提供)http://habrahabr.ru/blogs/sphinx/61807(俄语版,您可以使用GoogleTranslate阅读本文。请看文章的第二部分“Японял,этонамек。 “)

我最近实施了这种方法 - 效果很好!

答案 1 :(得分:1)

Sphinx允许您使用形态预处理器和单词形式词典。这两者结合起来可以让你更接近你想要达到的目标。您可以在此处详细了解这两个主题:http://sphinxsearch.com/docs/manual-0.9.8.html#conf-morphology以及下文。

有几种形态预处理器“风味”,可以选择最适合您需求的形状预处理器。文档还提到了Snowball项目,如果需要,该项目可用于添加除内置英语和俄语之外的其他语言的词干。项目网站:http://snowball.tartarus.org/

Sphinx是一个非常快速的全文搜索引擎,使用词干分析器不太可能减慢速度,直到你开始注意它为止。

相关问题