使用Lucene对预处理后的文档进行创建索引(可运行)

时间:

2015/3/18

杨鑫newlife

对于文档的预处理后,就要开始使用Lucene来处理相关的内容了。

这里使用的Lucene的步骤如下:

首先要为处理对象机那里索引

二是构建查询对象

三是在索引中查找

这里的代码是处理创建索引的部分

代码:

package ch2.lucenedemo.process;

import java.io.BufferedReader;

import java.io.File;

import java.io.FileReader;

import java.io.IOException;

import jeasy.analysis.MMAnalyzer;

import org.apache.lucene.document.Document;

import org.apache.lucene.document.Field;

import org.apache.lucene.document.Field.Index;

import org.apache.lucene.index.IndexWriter;

public class IndexProcessor {

//成员变量,存储创建的索引文件存放的位置

private String INDEX_STORE_PATH = "E:\\Lucene项目\\索引目录";

//创建索引

public void createIndex(String inputDir){

try

{

System.out.println("程序开始运行,正在创建索引->->->->->");

IndexWriter writer = new IndexWriter(INDEX_STORE_PATH, new MMAnalyzer(), true);

File filesDir = new File(inputDir);

//取得所有需要建立索引的文件数组

File[] files = filesDir.listFiles();

//遍历数组

for(int i = 0; i < files.length; i++){

//获取文件名

String fileName = files[i].getName();

//判断文件是否为txt类型的文件

if(fileName.substring(fileName.lastIndexOf(".")).equals(".txt")){

//创建一个新的Document

Document doc = new Document();

System.out.println("正在为文件名创建索引->->->->");

//为文件名创建一个Field

Field field = new Field("filename", files[i].getName(), Field.Store.YES, Field.Index.TOKENIZED);

doc.add(field);

System.out.println("正在为文件内容创建索引->->->->");

//为文件内容创建一个Field

field = new Field("content", loadFileToString(files[i]), Field.Store.NO, Field.Index.TOKENIZED);

doc.add(field);

//把Document加入到IndexWriter

writer.addDocument(doc);

}

}

writer.close();

System.out.println("程序创建结束->->->->");

}catch(Exception e){

e.printStackTrace();

}

}

/*

* 从文件中把内容读取出来,所有的内容就放在一个String中返回

* */

public String loadFileToString(File file){

try{

BufferedReader br = new BufferedReader(new FileReader(file));

StringBuffer sb = new StringBuffer();

String line= br.readLine();

while(line != null){

sb.append(line);

line = br.readLine();

}

br.close();

return sb.toString();

}catch(IOException e){

e.printStackTrace();

return null;

}

}

public static void main(String[] args){

IndexProcessor ip = new IndexProcessor();

ip.createIndex("E:\\Lucene项目\\目标文件");

}

}

时间: 2024-10-06 21:10:02

使用Lucene对预处理后的文档进行创建索引(可运行)的相关文章

使用Lucene对预处理后的文档进行创建索引(可执行)

时间: 2015/3/18 杨鑫newlife 对于文档的预处理后.就要開始使用Lucene来处理相关的内容了. 这里使用的Lucene的过程例如以下: 首先要为处理对象机那里索引 二是构建查询对象 三是在索引中查找 这里的代码是处理创建索引的部分 代码: package ch2.lucenedemo.process; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import jav

Domino表单保存后,文档默认增加$Readers域的设置

[背景] 今天遇到一个奇怪的问题,一个表单一保存后,文档属性中会有一个$Readers域.查遍了各种资料无果. [原因] 表单属性-最后一个选项卡-去掉"所有读者及更高权限者"并且选择指定的角色.截图如下:

[翻译] DTCoreText 从HTML文档中创建富文本

DTCoreText 从HTML文档中创建富文本 https://github.com/Cocoanetics/DTCoreText 注意哦亲,DTRichTextEditor 这个组件是收费的,不贵,才650美元而已^_^. DTCoreText This project aims to duplicate the methods present on Mac OSX which allow creation of NSAttributedString from HTML code on iO

Android官方入门文档[1]创建一个Android项目

Android官方入门文档[1]创建一个Android项目 创建一个Android项目 这节课教你1.创建与Android Studio中的一个项目2.创建使用命令行工具项目 你也应该阅读?管理项目 Creating an Android Project This lesson teaches you to1.Create a Project with Android Studio2.Create a Project with Command Line Tools You should also

Android官方入门文档[16]创建一个Fragment代码片段

Android官方入门文档[16]创建一个Fragment代码片段 Creating a Fragment创建一个Fragment代码片段 This lesson teaches you to1.Create a Fragment Class2.Add a Fragment to an Activity using XML You should also read?Fragments 这节课教你1.创建一个Fragment代码片段类2.使用XML来添加一个Fragment代码片段给一个活动 你也

solr从pdf、office文档中建立索引

使用solr从pdf.office文档中建立索引和从数据库中建立相似,只不过这里需要tika来解析这些文档.8.1 配置一个handler 这个handler首先要在solrConfig.xml中配置,如下所示:          <requestHandler name="/dataimport"    class="org.apache.solr.handler.dataimport.DataImportHandler"> <lst    na

MFC多文档的创建和打开过程

我们在学习MFC的时候,时常是很迷糊的,往往微软很多很好的机制都都深埋到代码里面了,让你无法看清她的神秘面纱.常常我们是糊里糊涂的将代码写出来了,往往是知其然,不知其所以然.这样的时候,有时候让我感觉很惶恐.叫我去看msdn,有发现自己的英文水平有限,再者,实在没这个耐心将其看完.看到一本很经典的书<深入浅出MFC这本书对MFC的机制讲的很好.仔细看了会对你受益匪浅,让你认识到,VC MFC编程就是拖拖控件这么简单的事情. MFC最经典的就是她的文档视图结构了 ,本文就愿作抛砖引玉之石.有不对之

XML——对XML文档的创建与增删改查

原文:XML--对XML文档的创建与增删改查 一.创建的第一种方式  //1.创建一个XML文档 XmlDocument doc = new XmlDocument(); //2.创建第一行描述信息 XmlDeclaration dec = doc.CreateXmlDeclaration("1.0", "utf-8", null); //3.将创建的第一行描述信息添加到文档中 doc.AppendChild(dec); //4.给文档添加根节点 XmlElemen

Lucene使用Sort方法对文档进行排序

/* * 这段代码使用的是Lucene对于文档排序使用的sort方法 * 这里可以使用多个sort的构造方法,来自己定义,所想要实现的功能. * */ package score; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.d