- 自己動手寫分布式搜索引擎
- 羅剛
- 290字
- 2020-11-28 15:52:44
3.1.4 查詢文檔索引
QueryParser這個類位于org.apache.lucene.queryparser.classic包,需要引用lucene-queryparser-6.3.0.jar文件。
新建一個測試類來查詢索引,得到查詢對象。
String defaultField = "title"; String queryString ="test"; Analyzer analyzer = new StandardAnalyzer(); QueryParser parser = new QueryParser(defaultField, analyzer); //用于解析查詢語法 //從字符串得到查詢對象 Query query = parser.parse(queryString);
調用IndexSearcher.search方法執行搜索后,從IndexSearcher中根據文檔編號取出文檔對象。
TopDocs hits = searcher.search(query, 10); System.out.println("hits.totalHits:"+ hits.totalHits); for (int j = 0; j < hits.scoreDocs.length; j++) { //根據文檔編號取出文檔對象 Document hitDoc = searcher.doc(hits.scoreDocs[j].doc); System.out.println(hitDoc.get("title")); //輸出文檔 }
注意,這里的hits.totalHits和hits.scoreDocs.length的值往往不一樣。對于網頁搜索來說,hits.totalHits表示索引中總的文檔數,而hits.scoreDocs.length表示當前頁中實際顯示的文檔數。
因為倒排索引中只存文檔編號,不存全文,所以IndexSearcher.search方法搜出來的結果中只有文檔編號序列。但Lucene的索引中不只是有倒排索引,還存儲了文檔內容,所以可以根據文檔編號得到文檔對象。
推薦閱讀
- ModelSim電子系統分析及仿真(第3版)
- 持續演進的Cloud Native:云原生架構下微服務最佳實踐
- Photoshop CC 2018實用教程
- Painter繪畫實例教程
- 剪映專業版(電腦版)視頻剪輯全攻略:音效添加+轉場特效+視頻制作
- 中文版Maya 2022完全自學教程
- 青少年美育趣味課堂:青少年學攝影修圖
- ABAQUS有限元分析從入門到精通(第3版)
- 新媒體美工一冊通(全彩)
- Vivado從此開始(進階篇)
- 從零開始:AutoCAD 2010中文版建筑制圖基礎培訓教程(第2版)
- UG NX 12.0完全自學寶典
- iPad Procreate風格繪畫之美
- 蝶變:移動用戶體驗設計之道
- Magento 1.3 Theme Design