Java_ABC_3.Lucene創建索引

 
package lucene;

import java.io.File;
import java.io.FileReader;
import java.io.Reader;
import java.util.Date;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;

public class TxtFileIndexer {
 
     public static void main(String[] args) throws Exception
     {
      //索引目錄
      File   indexDir = new File("D:\\TOM\\LuceneIndex");
      //分詞器
      Analyzer luceneAnalyzer = new StandardAnalyzer();
     
      //創建索引類
      IndexWriter indexWriter = new IndexWriter( indexDir, luceneAnalyzer, true);
     
      //數據源目錄
      File   dataDir  = new File("D:\\TOM\\LuceneData");
      //遍歷數據源目錄,查找每個文本文件
      File[] dataFiles  = dataDir.listFiles();
     
      //計時!
      long startTime = new Date().getTime();
     
      //對數據源目錄中的每個文件遍歷
      for(int i = 0; i < dataFiles.length; i++)
      {
       if(dataFiles[i].isFile() && dataFiles[i].getName().endsWith(".txt"))
       {
        System.out.println("Indexing file " + dataFiles[i].getCanonicalPath());
        Document document = new Document();
        Reader txtReader = new FileReader(dataFiles[i]);
        document.add(Field.TEXT("path",dataFiles[i].getCanonicalPath()));
        document.add(Field.TEXT("contents",txtReader));
        indexWriter.addDocument(document);
       }
     }
     
     //關閉索引
      indexWriter.optimize();
      indexWriter.close();
      //計時!
      long endTime = new Date().getTime();
       
      System.out.println("It takes " + (endTime - startTime)
         + " milliseconds to create index for the files in directory "
         + dataDir.getPath());       
     }
}

發佈了22 篇原創文章 · 獲贊 0 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章