步驟
@Testpublic void createIndex() throws Exception {//1. 創建一個Director對象,指定索引庫保存的位置.Directory directory = FSDirectory.open(new File("D:\\Folder\\lucene\\index").toPath());//2. 基于Director對象創建一個IndexWriter對象.IndexWriter indexWriter = new IndexWriter(directory, new IndexWriterConfig());//3. 讀取磁盤上的文件,對應每個文件創建一個文檔對象.File dir = new File("D:\\Folder\\lucene\\searchsource");File[] files = dir.listFiles();for (File file : files) {//獲取文件名String fileName = file.getName();//獲取文件路徑String filePath = file.getPath();//獲取文件內容String fileContent = FileUtils.readFileToString(file, "UTF-8");//獲取文件大小long fileSize = FileUtils.sizeOf(file);//創建Filed域//參數1:域的名稱//參數2:域的內容//參數3:是否存儲Field fieldName = new TextField("name", fileName, Field.Store.YES);Field fieldPath = new TextField("path", filePath, Field.Store.YES);Field fieldContent = new TextField("content", fileContent, Field.Store.YES);Field fieldSize = new TextField("size", fileSize + "", Field.Store.YES);//創建文檔對象Document document = new Document();//4. 向文檔對象中添加域.document.add(fieldName);document.add(fieldPath);document.add(fieldContent);document.add(fieldSize);//5. 把文檔對象寫入索引庫.indexWriter.addDocument(document);}//6. 關閉IndexWriter對象.indexWriter.close();}
步驟
@Testpublic void searchIndex() throws Exception {//1. 創建一個Directory對象,指定索引庫的位置.Directory directory = FSDirectory.open(new File("D:\\Folder\\lucene\\index").toPath());//2. 創建一個IndexReader對象.IndexReader indexReader = DirectoryReader.open(directory);//3. 創建一個IndexSearcher對象.IndexSearcher indexSearcher = new IndexSearcher(indexReader);//4. 創建一個Query對象, TermQuery.Query query = new TermQuery(new Term("content", "spring"));//5. 執行查詢,得到TopDocs對象.TopDocs topDocs = indexSearcher.search(query, 10);//參數1:查詢對象 參數2:查詢結果返回的最大記錄數//6. 取得查詢結果的總記錄數System.out.println("查詢總記錄數:" + topDocs.totalHits);//7. 取文檔列表.ScoreDoc[] scoreDocs = topDocs.scoreDocs;//8. 打印文檔中的內容.for (ScoreDoc scoreDoc : scoreDocs) {//獲取文檔idint docId = scoreDoc.doc;//根據id取文檔對象Document document = indexSearcher.doc(docId);System.out.println(document.get("name"));System.out.println(document.get("path"));System.out.println(document.get("size"));System.out.println(document.get("content"));System.out.println("-----------------------");}//9. 關閉IndexReader對象.indexReader.close();}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态