【问题标题】:Document search on partial words部分单词的文档搜索
【发布时间】:2011-08-12 18:45:32
【问题描述】:

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

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

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

【问题讨论】:

  • 我建议您将搜索引擎标签添加到您的问题、lucene、Xapian 或至少搜索引擎中。搜索是一个通用标签,对搜索引擎感兴趣的人可能会厌倦阅读各种与搜索引擎无关的问题的奇怪请求。祝你好运!
  • 感谢您的建议。添加了更多标签。
  • 您没有阅读各种引擎文档的任何原因。 Lucene(以及 Solr)支持通配符搜索:wiki.apache.org/lucene-java/…

标签: lucene solr information-retrieval xapian whoosh


【解决方案1】:

使用 lucene,您可以通过多种方式实现这一点:

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

2.) 您可以创建一个包含N-Grams of all the terms 的附加字段。这会产生更大的索引,但在许多情况下会更快(搜索速度)。

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

对于通配符查询和模糊搜索,请查看query syntax docs

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-08-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-03
相关资源
最近更新 更多