gpt4 book ai didi

lucene - 为什么 Lucene QueryParser 需要分析器

转载 作者:行者123 更新时间:2023-12-04 07:04:41 28 4
gpt4 key购买 nike

我是 Lucene 的新手,并试图将原始字符串解析为 Query使用 QueryParser .

我想知道,为什么 QueryParser.Parse()方法需要一个 Analyzer 参数吗?

如果分析与查询有关,那么 Analyzer处理常规时应指定 Query对象( TermQueryBooleanQuery 等),如果不是,为什么是 QueryParser需要吗?

最佳答案

索引时,Lucene 将文本划分为原子单元(标记)。在这个阶段可能会发生很多事情(例如小写、词干提取、停用词的删除等)。最终结果是一个术语。

然后,当您查询时,Lucene 将完全相同的算法应用于查询,以便它可以将术语与术语进行匹配。

问:为什么不TermQuery需要分析仪吗?
答:QueryParser对象解析查询字符串并产生 TermQuery (也可以产生其他类型的查询,例如 PhraseQuery )。 TermQuery已经包含与索引中形状相同的术语。如果您(作为程序员)绝对确定您在做什么,您可以创建一个 TermQuery你自己——但这假设你知道查询解析的确切顺序,并且你知道索引中的术语是什么样的。

问:为什么不BooleanQuery需要分析仪吗?
答:BooleanQuery只需使用运算符(AND/OR/MUST/SHOULD 等)连接其他查询。如果没有任何其他查询,它本身并不是很有用。

这是一个 非常简化的答案。我强烈推荐阅读 Introduction to Information Retrieval书;它包含了编写 Lucene(和其他类似框架)所基于的理论。这本书可以在网上免费获得。

关于lucene - 为什么 Lucene QueryParser 需要分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15226337/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com