lucene - 部分词的文档搜索

标签 lucene solr information-retrieval xapian whoosh

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

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

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

最佳答案

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

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

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

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

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

关于lucene - 部分词的文档搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5786338/

相关文章:

javascript - Node.js 有一个好的索引/搜索引擎吗?

sorting - 多个 solr 服务器实例上的 solr.RandomSortField

java - 在 Lucene 中使用不同的相似性获得相同的结果

image - 有没有可以让我按图像搜索的API?

elasticsearch - 我如何使用Lucene查询语法在Elastic Search中进行嵌套字段查询

使用 TopScoreDocCollector 进行 Lucene 分页

sql - Elasticsearch 过滤请求结果的默认文档序列是什么?

Solr 查询日志 - 需要 SQL 结果

Solr 数据导入处理程序 : Can I get a dynamic field name from xml attribute with XPathEntityProcessor?

text-processing - 术语聚类库?