package org.itat.test;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
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.store.LockObtainFailedException;
import org.apache.lucene.util.Version;
public class HelloLucene {
/**
* 目的:建立索引
*
* 流程:
* 1. 创建Directory
索引的目标
* 2. 创建IndexWriter 写索引
*
3. 创建Document对象
*
索引的资源 可能是 一篇 文档 或者是 数据库中的 一张表。
* 文档的 属性: 路径 名称 Size 等等
* 4. 为 Document 添加 Field (域)
* 5. 通过IdexWriter 添加文档到索引中
*
* @author love
* @version V1.0
* @throws IOException
* @throws CorruptIndexException
*
* */
public void index() throws CorruptIndexException, IOException
{
IndexWriter writer = null;
try {
//1. 创建Directory
索引的目标//内存文件
//
Directory dir = new RAMDirectory(); //建立在内存中的!
//
Directory dir = FSDirectory.open(new File("D:/study/Code/Lucene/index"));//创建在硬盘上!
Directory dir = FSDirectory.open(new File("D:\\study\\Code\\Lucene\\index1"));//创建在硬盘上!
//2. 创建IndexWriter 写索引
IndexWriterConfig iwc = new IndexWriterConfig(Version.LUCENE_36, new StandardAnalyzer(Version.LUCENE_36));
writer = new IndexWriter(dir, iwc);
//3. 创建Document对象
Document doc = null;
//4. 为 Document 添加 Field (域)
File f = new File("D:\\study\\Code\\Lucene\\Test");
for(File file: f.listFiles())
{
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("path",file.getAbsolutePath(),Field.Store.YES,Field.Index.NOT_ANALYZED));
//5. 通过IdexWriter 添加文档到索引中2
writer.addDocument(doc);
}
} catch (CorruptIndexException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (LockObtainFailedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally{
if(writer!=null) writer.close();
}
}
}
****************************************************************************************
//测试类:
package org.itat.test;
import org.junit.Test;
import java.io.IOException;
import org.apache.lucene.index.CorruptIndexException;
public class TestLucene {
@Test
public void testIndex() throws CorruptIndexException, IOException
{
HelloLucene h1 = new HelloLucene();
h1.index();
}
}
分享到:
相关推荐
luceneTest 博文链接:https://wolftou.iteye.com/blog/148701
1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...
第1部分:Lucene基础。介绍了Lucene的基础知识,包括Lucene的历史和发展情况、使用Lucene创建索引和执行搜索的基本方法以及中文分词的应用,最后做了两个应用项目。第2部分:数据解析。介绍解析不同格式数据(如Word...
NULL 博文链接:https://never-forget.iteye.com/blog/1282200
1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...
这是第一个搜索引擎的代码实例,大家看看
如果第一次执行上述程序,指定create为false,由于指定的索引目录下面缺少被追加索引的索引文件,将会抛出异常: Exception in thread "main" java.io.FileNotFoundException: no segments* file found in org....
1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。 QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...
典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 下面是其它三卷的链接 第二卷: http://download.csdn.net/detail/jincheng52rmb/5349256 第三卷: ...
第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...
第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...
后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢 下来,当热启时,当前搜索器处理目前的请求(???)。 后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在...
第1版 (2011年1月1日) 平装: 922页 由于上传限制 共分成4卷 请手动搜索其它3卷下载 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 实现各种框架的集成 第2篇 典型...
第1篇 了解开源软件 第1章 开源软件概述 1.1 开源软件的理解 1.2 开源软件的定义 1.3 开源软件定义的意义 1.4 开源软件和其他类型软件的比较 第2章 开源软件的历史与未来 2.1 开源软件的历史 2.2 开源运动背后的...
第1个是普通搜索,当关键字文本框没有输入任何数据时,单击“搜索”按钮后,可以对数据表中的所有内容进行查询;当在新闻类别选择对话框中选择查询的条件,单击“搜索”按钮后,可以按照新闻类别查询数据表中所有...