Lucene - 查询编程

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

考虑高级搜索的情况,由许多应用程序提供,其中为用户提供了多个选项来限制搜索结果.通过查询编程,我们可以很容易地实现相同的目标.

以下是我们将在适当时候讨论的查询类型列表.

S.No.Class&描述
1TermQuery

此类充当核心组件,在索引期间创建/更新索引过程.

2TermRangeQuery

当一系列文本术语出现时,使用TermRangeQuery要搜索.

3PrefixQuery

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

4B ooleanQuery

BooleanQuery用于搜索使用 AND,OR NOT 运算符进行多次查询的文档.

5PhraseQuery

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

6WildCardQuery

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

7FuzzyQuery

FuzzyQuery用于搜索文档模糊实现,它是基于编辑距离算法的近似搜索.

8MatchAllDocsQuery

MatchAllDocsQuery顾名思义匹配所有文档.