我正在研究 Lucene,无法区分 QueryParser 和 Term Query。看来他们是一样的。这是真的?如果不是,我应该什么时候使用一个而不是另一个?
问问题
552 次
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 回答