Lucene - 查詢程式設計



我們在上一章Lucene - 搜尋操作中看到,Lucene 使用 IndexSearcher 進行搜尋,並使用 QueryParser 建立的 Query 物件作為輸入。在本章中,我們將討論各種型別的 Query 物件以及以程式設計方式建立它們的不同方法。建立不同型別的 Query 物件可以控制要進行的搜尋型別。

考慮許多應用程式提供的“高階搜尋”案例,其中為使用者提供了多個選項來限制搜尋結果。透過查詢程式設計,我們可以非常輕鬆地實現這一點。

以下是我們將逐步討論的查詢型別列表。

序號 類和描述
1 TermQuery

此類充當核心元件,在索引過程中建立/更新索引。

2 TermRangeQuery

當需要搜尋一系列文字術語時,使用 TermRangeQuery。

3 PrefixQuery

PrefixQuery 用於匹配索引以指定字串開頭的文件。

4 BooleanQuery

BooleanQuery 用於搜尋使用AND、ORNOT運算子進行多個查詢的結果的文件。

5 PhraseQuery

短語查詢用於搜尋包含特定術語序列的文件。

6 WildCardQuery

WildcardQuery 用於使用萬用字元(如 * 表示任何字元序列,? 匹配單個字元)搜尋文件。

7 FuzzyQuery

FuzzyQuery 用於使用模糊實現搜尋文件,即基於編輯距離演算法的近似搜尋。

8 MatchAllDocsQuery

顧名思義,MatchAllDocsQuery 匹配所有文件。

廣告