我们在前一章 Lucene - Search Operation 中看到,Lucene使用IndexSearcher进行搜索,并使用QueryParser创建的Query对象作为输入.在本章中,我们将讨论各种类型的Query对象以及以编程方式创建它们的不同方法.创建不同类型的Query对象可以控制要进行的搜索.
考虑高级搜索的情况,由许多应用程序提供,其中为用户提供了多个选项来限制搜索结果.通过查询编程,我们可以很容易地实现相同的目标.
以下是我们将在适当时候讨论的查询类型列表.
S.No. | Class&描述 |
---|---|
1 | TermQuery 此类充当核心组件,在索引期间创建/更新索引过程. |
2 | TermRangeQuery 当一系列文本术语出现时,使用TermRangeQuery要搜索. |
3 | PrefixQuery PrefixQuery用于匹配索引的文档以指定的字符串开头. |
4 | B ooleanQuery BooleanQuery用于搜索使用 AND,OR 或 NOT 运算符进行多次查询的文档. |
5 | PhraseQuery 短语查询用于搜索包含特定术语序列的文档. |
6 | WildCardQuery WildcardQuery用于使用通配符(如'*')搜索文档任何字符序列,?匹配单个字符. |
7 | FuzzyQuery FuzzyQuery用于搜索文档模糊实现,它是基于编辑距离算法的近似搜索. |
8 | MatchAllDocsQuery MatchAllDocsQuery顾名思义匹配所有文档. |