`
ol_beta
  • 浏览: 282321 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Lucene 实战:快速开始 创建索引

阅读更多
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创建索引步骤

    Lucene创建索引步骤: 1、创建Directory(索引位置) 2、创建IndexWrite(写入索引) 3、创建Document对象 4、为Document添加Field(相当于添加属性:类似于表与字段的关系) 5、通过IndexWriter添加文档到索引中

    Lucene3.0创建索引

    Lucene3.0创建索引 读取目录下的所有txt文档格式的文件,然后生成一个索引文件到某目录下!

    Lucene实战中文版第2版.pdf

    lcene实战(第2版)》基于apache的lucene3.0,从lucene核心、lucene应用、案例分析3个方面详细系统地介绍了lucene,包括认识lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取文本、...

    Lucene实战视频教程

    资源名称:Lucene实战视频教程资源目录:【】01_lucenc简介和创建索引初步【】02_lucene简介和搜索初步【】03_lucene索引_创建_域选项【】04_lucene索引_的删除和更新【】05_lucene索引_加权操作和Luke的简单演示...

    lucene 对 xml建立索引

    lucene 对 xml建立索引 建立索引就是怎么简单 呵呵

    Lucene实战中文版第2版

    《Lucene实战(第2版)》基于apache的Lucene3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用tika提取...

    Lucene实战(中文版第二版)对应Lucene版本

    Lucene各版本间变化较大,lucene官方的turtial里面很多还是lucene-3.x.x的版本,这是Lucene实战(中文版第二版)对应Lucene版本,有需要的拿去用。

    Lucene实战(中文版)

    Lucene实战(中文版),lucene是apache的用于构建搜索引擎的开源框架,本书由该项目的维护者撰写,是学习、使用lucene的经典图书

    Lucene:基于Java的全文检索引擎简介

    Lucene是一个基于Java的全文索引工具包。 1. 基于Java的全文索引引擎Lucene简介:关于作者和Lucene的...5. Hacking Lucene:简化的查询分析器,删除的实现,定制的排序,应用接口的 扩展 6. 从Lucene我们还可以学到什么

    Lucene实战

    《Lucene实战(第2版)》基于Apache的Lucene 3.0,从Lucene核心、Lucene应用、案例分析3个方面详细系统地介绍了Lucene,包括认识Lucene、建立索引、为应用程序添加搜索功能、高级搜索技术、扩展搜索、使用Tika提取文本...

    Lucene.Net:使用eaglet的盘古分词进行分词和搜索实例

    Lucene.Net:使用eaglet的盘古分词进行分词和搜索实例

    Lucene实战(Lucene In Action)

    Lucene实战,了解Lucene开源系统并付诸实践的经典之作,很快你就能上手写一个简单的操作系统

    Lucene实战(第2版)

    Lucene实战(第2版) Lucene是apache软件基金会4 jakarta项目组的一个子项目,是一个开放源代码的全文检索引擎工具包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引...

    Lucene实战(第2版).pdf

    Lucene实战(第2版).pdf

    Lucene 索引的简单使用

    Lucene创建索引,查询索引的简单使用。

    Lucene实战(第二版)源代码

    Lucene实战(第二版)源代码

    Lucene实战(第二版)

    Lucene实战(第二版)源代码

    lucene-core-7.7.0-API文档-中文版.zip

    Maven坐标:org.apache.lucene:lucene-core:7.7.0; 标签:apache、lucene、core、中文文档、jar包、java; 使用方法:解压翻译后的API文档,用浏览器打开“index.html”文件,即可纵览文档内容。 人性化翻译,文档...

Global site tag (gtag.js) - Google Analytics