我正在研究Lucene,无法区分QueryParser和Term Query。看来它们是一样的。这是真的?如果不是,我何时应该使用另一个?
答案 0 :(得分:4)
不,他们不是同一个人。以下是每个人的个人描述。
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