lucene入门索引器及搜索器源码.docVIP

  • 0
  • 0
  • 约6.45千字
  • 约 6页
  • 2017-03-26 发布于江苏
  • 举报
lucene入门索引器及搜索器源码

lucene4.6索引器及搜索器源码 date:2014.1.1 简介: Lucene是一套用于全文检索和搜寻的开源程式库,由Apache软件基金会支持和提供。Lucene提供了一个简单却强大的应用程式接口,能够做全文索引和搜寻。在Java开发环境里Lucene是一个成熟的免费开源工具。就其本身而言,Lucene是当前以及最近几年最受欢迎的免费Java资讯检索程式库。人们经常提到资讯检索程式库,虽然与搜索引擎有关,但不应该将资讯检索程式库与搜索引擎相混淆package com.lm.IndexTxt; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStreamReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.cn.smart.SmartChineseAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; /** * lucene 索引创建 * @author LM */ public class Indexer { private String fieldName;//索引段名称 private String endStr;//问价后缀名称 public Indexer(String fieldName, String endStr){ this.fieldName = fieldName; this.endStr = endStr; } /** * 创建索引 * @param indexDir 索引创建路径 * @param dataDir 文本保存路径 * @return * @throws IOException * @author lm */ public int index(File indexDir, File dataDir ) throws IOException { //数据路径不存在或不是目录 if(!dataDir.exists() || !dataDir.isDirectory()){ throw new IOException(dataDir + does not exist or is not a directory); } // 分词器 Analyzer analyzer = new SmartChineseAnalyzer(Version.LUCENE_46,true); // 索引创建器配置 IndexWriterConfig indexWriterConfig=new IndexWriterConfig(Version.LUCENE_46,analyzer); // 文件目录 Directory directory = FSDirectory.open(indexDir); if (IndexWriter.isLocked(directory)) { IndexWriter.unlock(directory); } // 索引创建器 IndexWriter writer = new IndexWriter(directory,indexWriterConfig); writer.deleteAll();//先全部删除 indexDirectory(writer, dataDir); int numIndexed = writer.numDocs(); writer.close(); return numIndexed; } /** * 递归查找符合条件的文件 * @param writer

文档评论(0)

1亿VIP精品文档

相关文档