Lucene - 查询编程



我们在上一章Lucene - 搜索操作中看到,Lucene 使用 IndexSearcher 进行搜索,并使用 QueryParser 创建的 Query 对象作为输入。在本章中,我们将讨论各种类型的 Query 对象以及以编程方式创建它们的不同方法。创建不同类型的 Query 对象可以控制要进行的搜索类型。

考虑许多应用程序提供的“高级搜索”案例,其中为用户提供了多个选项来限制搜索结果。通过查询编程,我们可以非常轻松地实现这一点。

以下是我们将逐步讨论的查询类型列表。

序号 类和描述
1 TermQuery

此类充当核心组件,在索引过程中创建/更新索引。

2 TermRangeQuery

当需要搜索一系列文本术语时,使用 TermRangeQuery。

3 PrefixQuery

PrefixQuery 用于匹配索引以指定字符串开头的文档。

4 BooleanQuery

BooleanQuery 用于搜索使用AND、ORNOT运算符进行多个查询的结果的文档。

5 PhraseQuery

短语查询用于搜索包含特定术语序列的文档。

6 WildCardQuery

WildcardQuery 用于使用通配符(如 * 表示任何字符序列,? 匹配单个字符)搜索文档。

7 FuzzyQuery

FuzzyQuery 用于使用模糊实现搜索文档,即基于编辑距离算法的近似搜索。

8 MatchAllDocsQuery

顾名思义,MatchAllDocsQuery 匹配所有文档。

广告