import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
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.document.NumericField;
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;
import org.junit.Test;
/**
* 创建索引
*
* @author Oliver
*
*/
public class Index {
private static String indexPath = System.getProperty("user.dir") + "\\index";
private static String dataPath = System.getProperty("user.dir") + "\\data";
@Test
public void createIndex() throws IOException {
// 创建分词器
Analyzer analyzer = new StandardAnalyzer(Version.LUCENE_34);
// 根据文件路径创建索引库
Directory dir = FSDirectory.open(new File(indexPath));
// 创建IndexWriter
IndexWriterConfig conf = new IndexWriterConfig(Version.LUCENE_34, analyzer);
IndexWriter writer = new IndexWriter(dir, conf);
// 数据文件
File[] dataFile = new File(dataPath).listFiles();
// 添加文件
for (File file : dataFile) {
writer.addDocument(getDocument(file));
}
// 关闭
writer.close();
}
/**
* 添加文件
*
* @param file
* @return
* @throws FileNotFoundException
*/
private Document getDocument(File file) throws FileNotFoundException {
Document doc = new Document();
//文件内容
doc.add(new Field("content", new FileReader(file)));
//文件名字
doc.add(new Field("filename", file.getName(), Field.Store.YES, Field.Index.NOT_ANALYZED));
//文件路径
doc.add(new Field("filepath", file.getAbsolutePath(), Field.Store.YES,
Field.Index.NOT_ANALYZED));
//文件大小
doc.add( new NumericField("size").setLongValue(file.length()));
return doc;
}
}
分享到:
相关推荐
Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中
Lucene3.0创建索引 读取目录下的所有txt文档格式的文件,然后生成一个索引文件到某目录下!
lcene实战(第2版)》基于apache的lucene3.0,从lucene核心、lucene应用、案例分析3个方面详细系统地介绍了lucene,包括认识lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取文本、...
资源名称:Lucene实战视频教程资源目录:【】01_lucenc简介和创建索引初步【】02_lucene简介和搜索初步【】03_lucene索引_创建_域选项【】04_lucene索引_的删除和更新【】05_lucene索引_加权操作和Luke的简单演示...
lucene 对 xml建立索引 建立索引就是怎么简单 呵呵
《Lucene实战(第2版)》基于apache的Lucene3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取...
Lucene各版本间变化较大,lucene官方的turtial里面很多还是lucene-3.x.x的版本,这是Lucene实战(中文版第二版)对应Lucene版本,有需要的拿去用。
Lucene实战(中文版),lucene是apache的用于构建搜索引擎的开源框架,本书由该项目的维护者撰写,是学习、使用lucene的经典图书
Lucene是一个基于Java的全文索引工具包。 1. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的...5. Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的 扩展 6. 从Lucene我们还可以学到什么
《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...
Lucene.Net:使用eaglet的盘古分词进行分词和搜索实例
Lucene实战,了解Lucene开源系统并付诸实践的经典之作,很快你就能上手写一个简单的操作系统
Lucene实战(第2版) Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引...
Lucene实战(第2版).pdf
Lucene创建索引,查询索引的简单使用。
Lucene实战(第二版)源代码
Lucene实战(第二版)源代码
Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...