Lucene 简明教程

Lucene - Query Programming

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

考虑许多应用程序提供的高级搜索案例,在这些应用程序中用户有多个选项来限定搜索结果。通过查询编程,我们可以非常轻松地实现相同目标。

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

S.No.

Class & Description

1

TermQuery 此类用作创建/更新索引过程中的核心组件。

2

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

3

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

4

BooleanQuery 可以使用 BooleanQuery 使用 AND, ORNOT 运算符搜索多个查询的结果文档。

5

PhraseQuery 可以使用短语查询搜索包含特定术语序列的文档。

6

WildCardQuery 可以使用通配符查询使用通配符(如“*”表示任何字符序列、“?”表示匹配单个字符)搜索文档。

7

FuzzyQuery 可以使用模糊查询使用基于编辑距离算法的近似搜索搜索文档。

8

MatchAllDocsQuery 如其名称所示,MatchAllDocsQuery 匹配所有文档。