lucene&solr查詢索引例項
阿新 • • 發佈:2020-08-18
1.實現步驟:
2.程式碼
// 搜尋索引 @Test public void testSearch() throws Exception { // 第一步:建立一個Directory物件,也就是索引庫存放的位置。 Directory directory = FSDirectory.open(new File("D:\\temp\\index"));// 磁碟 // 第二步:建立一個indexReader物件,需要指定Directory物件。 IndexReader indexReader = DirectoryReader.open(directory);// 第三步:建立一個indexsearcher物件,需要指定IndexReader物件 IndexSearcher indexSearcher = new IndexSearcher(indexReader); // 第四步:建立一個TermQuery物件,指定查詢的域和查詢的關鍵詞。 Query query = new TermQuery(new Term("fileName", "lucene")); // 第五步:執行查詢。TopDocs物件表示查詢到的多條文件的資訊 TopDocs topDocs = indexSearcher.search(query, 10);// 第六步:返回查詢結果。遍歷查詢結果並輸出。 ScoreDoc[] scoreDocs = topDocs.scoreDocs; for (ScoreDoc scoreDoc : scoreDocs) { int doc = scoreDoc.doc; Document document = indexSearcher.doc(doc); // 檔名稱 String fileName = document.get("fileName"); System.out.println(fileName);// 檔案內容 String fileContent = document.get("fileContent"); System.out.println(fileContent); // 檔案大小 String fileSize = document.get("fileSize"); System.out.println(fileSize); // 檔案路徑 String filePath = document.get("filePath"); System.out.println(filePath); System.out.println("------------"); } // 第七步:關閉IndexReader物件 indexReader.close(); }