我正在研究Lucene,无法获得QueryParser和Term Query之间的区别。看来他们是一样的。这是真的?如果不是,我什么时候应该使用另一个?

最佳答案

不,它们不是相同的。以下是它们各自的描述。

1)QueryParser“解析”文本查询并构建Lucene-Query-Object。它接受文本查询并基于该信息构建Lucene Query对象。

Look at this article描述了QueryParser分析文本输入并构建相应的Query对象的方式。

2)TermQuery是QueryParser的可交付成果,即它是一种Lucene Query。 Lucene支持各种查询,例如布尔查询,模糊查询等。TermQuery是Lucene查询的最基本形式。

什么时候使用什么?


从简单到高级,几乎所有应用程序都使用QueryParser。只需传递文本输入,它就会从该输入中构建相应的Lucene-Query-Object。
您始终可以使用TermQuery构造函数来构建自己的查询。人们在尝试不同的查询类型时通常会构建自己的Lucene-Query-Objects。


您可以查看本教程,其中包含使用Lucene时需要了解的所有基本知识:Lucene in 5 minutes

关于c# - 何时使用QueryParser和TermQuery?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16150807/

10-13 08:57