Java_ABC_3.Lucene创建索引

6 篇文章 0 订阅
6 篇文章 0 订阅
 
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());       
     }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值