14

我正在寻找能够搜索部分术语的文档搜索引擎(如 Xapian、Whoosh、Lucene、Solr、Sphinx 或其他)。

例如,当搜索术语“brit”时,搜索引擎应该返回包含“britney”或“britain”的文档,或者通常包含与 r 匹配的单词的任何文档*brit*

切线地,我注意到大多数引擎使用 TF-IDF(词频-逆文档频率)或其基于完整词而不是部分词的派生词。除了 TF-IDF 之外,还有没有其他成功实现文档检索的技术?

4

1 回答 1

19

使用 lucene,您将能够以多种方式实现这一点:

1.)您可以使用通配符查询*brit*(您必须设置查询解析器以允许前导通配符)

2.) 您可以创建一个包含所有术语的 N-Grams 的附加字段。这将导致更大的索引,但在许多情况下会更快(搜索速度)。

3.) 您可以使用模糊搜索来处理查询中的输入错误。例如,有人键入britnei但想查找britney

对于通配符查询和模糊搜索,请查看查询语法文档

于 2011-04-27T22:09:28.370 回答