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