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, OR 或 NOT 运算符搜索多个查询的结果文档。 |
5 |
PhraseQuery 可以使用短语查询搜索包含特定术语序列的文档。 |
6 |
WildCardQuery 可以使用通配符查询使用通配符(如“*”表示任何字符序列、“?”表示匹配单个字符)搜索文档。 |
7 |
FuzzyQuery 可以使用模糊查询使用基于编辑距离算法的近似搜索搜索文档。 |
8 |
MatchAllDocsQuery 如其名称所示,MatchAllDocsQuery 匹配所有文档。 |