1

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

4

1 回答 1

4

不,它们不一样。以下是对它们中的每一个的单独描述。

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

查看这篇文章,它描述了 QueryParser 解析文本输入并构建相应的 Query 对象的方式。

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

什么时候用什么?

  • 几乎所有的应用程序,从简单到高级,都使用 QueryParser。只需传入文本输入,它就会根据该输入构建相应的 Lucene-Query-Object。

  • 您始终可以使用 TermQuery 构造函数构建自己的查询。人们通常在尝试不同的查询类型时构建自己的 Lucene-Query-Objects。

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

于 2013-04-22T16:52:35.240 回答