- 自己動手寫分布式搜索引擎
- 羅剛
- 289字
- 2020-11-28 15:52:44
3.1.2 查詢索引庫
用戶界面輸入的查詢詞封裝成Query對象后,由IndexSearcher執行查找過程。因為往往只需要最相關的一些文檔,所以返回結果封裝在一個叫作TopDocs的對象中,如圖3-3所示。

圖3-3 查詢原理
查詢部分骨干偽代碼。
// DirectoryReader讀入一個目錄下的索引文件 IndexReader ir = DirectoryReader.open(directory); //打開索引庫 IndexSearcher searcher = new IndexSearcher(ir); //根據查詢詞搜索索引庫 TopDocs docs = searcher.search(query, 10); //最多返回10個結果 //遍歷查詢結果 ScoreDoc[] hits = docs.scoreDocs; for (ScoreDoc hit : hits){ //… } //關閉索引庫 searcher.close();
調用Searcher接口按關鍵詞搜索后,返回和給定查詢最相關的若干個文檔以及匹配上的文檔總數。TopDocs封裝了搜索結果以及匹配上的文檔總數。
TopDocs.scoreDocs就是一個封裝后的Document的列表。TopDocs主要包含如下兩個屬性。
public class TopDocs { public int totalHits; // 查詢匹配上的文檔總數 public ScoreDoc[] scoreDocs; // 命中文檔列表頂部的文檔 }
推薦閱讀
- 中文版AutoCAD 2015實用教程
- 新媒體美工一冊通(全彩)
- 邊做邊學:平面廣告設計與制作(Photoshop 2020+Illustrator 2020·第3版·微課版)
- Python 3 Object Oriented Programming
- Photoshop手繪從新手到高手
- Learning the Yahoo! User Interface library
- 社會調查數據管理:基于Stata 14管理CGSS數據
- Unity 3D游戲開發(第2版)
- 金融精英PPT實操手冊:世界知名公司這樣展示研究報告
- Revit技巧精選應用教程
- 剪輯師寶典:視頻剪輯思維與案例實戰
- AutoCAD 2016中文版自學視頻教程(標準版)
- Android APP開發實戰:從規劃到上線全程詳解
- 中文版3ds Max 2014從入門到精通實用教程(微課版)
- 早該這樣學!Photoshop比你想的簡單