本文承接上篇索引構建內容,詳細介紹 Lucene 搜索模塊的核心組件、查詢語法、評分機制與實戰代碼示例。
// 1. 打開索引目錄
Directory dir = FSDirectory.open(Paths.get(indexPath));
IndexReader reader = DirectoryReader.open(dir);
IndexSearcher searcher = new IndexSearcher(reader);
// 2. 構建查詢
Analyzer analyzer = new IKAnalyzer(); // 中文分詞
QueryParser parser = new QueryParser("content", analyzer);
Query query = parser.parse("Lucene 入門 教程");
// 3. 執行搜索
TopDocs topDocs = searcher.search(query, 10);
ScoreDoc[] hits = topDocs.scoreDocs;
// 4. 遍歷結果
for (ScoreDoc hit : hits) {
Document doc = searcher.doc(hit.doc);
System.out.println(doc.get("title") + " - " + hit.score);
}
// 5. 關閉資源
reader.close();
註:原文僅提供目錄結構,以上內容為基於 Lucene 搜索模塊的標準知識體系補全,實際項目中請參考官方文檔與版本對應 API。