- Lucene 教程
- Lucene - 首頁
- Lucene - 概述
- Lucene - 環境搭建
- Lucene - 第一個應用程式
- Lucene - 索引類
- Lucene - 搜尋類
- Lucene - 索引過程
- Lucene - 索引操作
- Lucene - 搜尋操作
- Lucene - 查詢程式設計
- Lucene - 分析
- Lucene - 排序
- Lucene 有用資源
- Lucene - 快速指南
- Lucene - 有用資源
- Lucene - 討論
Lucene - IndexSearcher
此類作為核心元件,在搜尋過程中讀取/搜尋索引。
類宣告
以下是org.apache.lucene.search.IndexSearcher類的宣告:
public class IndexSearcher extends Searcher
欄位
以下是org.apache.lucene.index.IndexWriter類的欄位:
- protected int[] docStarts
- protected IndexReader[] subReaders
- protected IndexSearcher[] subSearchers
類建構函式
下表顯示類建構函式列表:
| 序號 | 建構函式及描述 |
|---|---|
| 1 | IndexSearcher(Directory path) 已棄用。請改用 IndexSearcher(IndexReader)。 |
| 2 | IndexSearcher(Directory path, boolean readOnly) 已棄用。請改用 IndexSearcher(IndexReader)。 |
| 3 | IndexSearcher(IndexReader r) 建立一個搜尋提供的索引的搜尋器。 |
| 4 | IndexSearcher(IndexReader r, ExecutorService executor) 使用提供的 ExecutorService 為每個段分別執行搜尋。 |
| 5 | IndexSearcher(IndexReader reader, IndexReader[] subReaders, int[] docStarts) 專家級:直接指定 reader、subReaders 及其 docID 起始位置。 |
| 6 | IndexSearcher(IndexReader reader, IndexReader[] subReaders, int[] docStarts, ExecutorService executor) 專家級:直接指定 reader、subReaders 及其 docID 起始位置和 ExecutorService。 |
類方法
下表顯示不同的類方法:
| 序號 | 方法及描述 |
|---|---|
| 1 | void close() 請注意,如果使用 IndexSearcher(IndexReader) 構造 IndexSearcher,則不會關閉底層的 IndexReader。 |
| 2 | Weight createNormalizedWeight(Query query) 為頂級 Query 建立標準化權重。 |
| 3 | Document doc(int docID) 返回文件 ID 的儲存欄位。 |
| 4 | Document doc(int docID, FieldSelector fieldSelector) 獲取第 n 個位置的文件。 |
| 5 | int docFreq(Term term) 返回此術語的總 docFreq。 |
| 6 | Explanation explain(Query query, int doc) 返回一個 Explanation,描述文件如何針對查詢進行評分。 |
| 7 | Explanation explain(Weight weight, int doc) 專家級:低階實現方法,返回一個 Explanation,描述文件如何針對權重進行評分。 |
| 8 | protected void gatherSubReaders(List allSubReaders, IndexReader r) |
| 9 | IndexReader getIndexReader() 返回此搜尋器搜尋的 IndexReader。 |
| 10 | Similarity getSimilarity() 專家級:返回此搜尋器使用的 Similarity 實現。 |
| 11 | IndexReader[] getSubReaders() 返回此搜尋器使用的原子 subReaders。 |
| 12 | int maxDoc() 專家級:返回大於最大可能的文件編號的值。 |
| 13 | Query rewrite(Query original) 專家級:用於將查詢重寫為原始查詢。 |
| 14 | void search(Query query, Collector results) 較低級別的搜尋 API。 |
| 15 | void search(Query query, Filter filter, Collector results) 較低級別的搜尋 API。 |
| 16 | TopDocs search(Query query, Filter filter, int n) 查詢查詢的前 n 個命中結果,如果 filter 非空則應用 filter。 |
| 17 | TopFieldDocs search(Query query, Filter filter, int n, Sort sort) 具有任意排序的搜尋實現。 |
| 18 | TopDocs search(Query query, int n) 查詢查詢的前 n 個命中結果。 |
| 19 | TopFieldDocs search(Query query, int n, Sort sort) 具有任意排序且沒有 filter 的搜尋實現。 |
| 20 | void search(Weight weight, Filter filter, Collector collector) 較低級別的搜尋 API。 |
| 21 | TopDocs search(Weight weight, Filter filter, int nDocs) 專家級:低階搜尋實現。 |
| 22 | TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort) 專家級:具有任意排序的低階搜尋實現。 |
| 23 | protected TopFieldDocs search(Weight weight, Filter filter, int nDocs, Sort sort, boolean fillFields) 此方法類似於 search(Weight, Filter, int, Sort),但在這裡您可以透過指定 fillFields 來選擇是否設定返回的 FieldDoc 例項中的欄位。 |
| 24 | protected TopDocs search(Weight weight, Filter filter, ScoreDoc after, int nDocs) 專家級:低階搜尋實現。 |
| 25 | TopDocs searchAfter(ScoreDoc after, Query query, Filter filter, int n) 查詢查詢的前 n 個命中結果,如果 filter 非空則應用 filter,其中所有結果都在之前的結果 (after) 之後。 |
| 26 | TopDocs searchAfter(ScoreDoc after, Query query, int n) 查詢查詢的前 n 個命中結果,其中所有結果都在之前的結果 (after) 之後。 |
| 27 | void setDefaultFieldSortScoring(boolean doTrackScores, boolean doMaxScore) 預設情況下,按欄位排序(使用 search(Query,Filter,int,Sort))時不會計算分數。 |
| 28 | void setSimilarity(Similarity similarity) 專家級:設定此搜尋器使用的 Similarity 實現。 |
| 29 | String toString() |
繼承的方法
此類繼承自以下類的方法:
- org.apache.lucene.search.Searcher
- java.lang.Object