lua編程軟件,Lucene入門程序

 2023-10-02 阅读 14 评论 0

摘要:Lucene入門程序 環境搭建 創建一個Java工程導入jar包 lucene-core-7.4.0.jar lucene-analyzers-common-7.4.0.jar commons-io-2.6.jar 創建索引 步驟 創建一個Directory對象,指定索引庫保存的位置.基于Directory對象創建一個IndexWriter對象.讀取磁盤上的文件,對應每個文件創建

Lucene入門程序

環境搭建

  1. 創建一個Java工程
  2. 導入jar包
    lucene-core-7.4.0.jar
    lucene-analyzers-common-7.4.0.jar
    commons-io-2.6.jar

創建索引

	步驟
  1. 創建一個Directory對象,指定索引庫保存的位置.
  2. 基于Directory對象創建一個IndexWriter對象.
  3. 讀取磁盤上的文件,對應每個文件創建一個文檔對象.
  4. 向文檔對象中添加域.
  5. 把文檔對象寫入索引庫.
  6. 關閉IndexWriter對象.
@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();}

查詢索引

步驟
  1. 創建一個Directory對象,指定索引庫的位置.
  2. 創建一個IndexReader對象.
  3. 創建一個IndexSearcher對象.
  4. 創建一個Query對象,TermQuery.
  5. 執行查詢,得到TopDocs對象.
  6. 取得查詢結果的總記錄數
  7. 取文檔列表.
  8. 打印文檔中的內容.
  9. 關閉IndexReader對象.
@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();}

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/1/111093.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息