`
loveaden001
  • 浏览: 26107 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我的第一 lucene 实例

 
阅读更多
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();
}


}

分享到:
评论

相关推荐

    第一个lucene的简单实例....

    luceneTest 博文链接:https://wolftou.iteye.com/blog/148701

    Heritrix lucene开发自己的搜索引擎(源码)1

    1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...

    Lucene搜索引擎开发权威经典 光盘

    第1部分:Lucene基础。介绍了Lucene的基础知识,包括Lucene的历史和发展情况、使用Lucene创建索引和执行搜索的基本方法以及中文分词的应用,最后做了两个应用项目。第2部分:数据解析。介绍解析不同格式数据(如Word...

    第一个Lucene 3.6 (3.X) 入门实例

    NULL 博文链接:https://never-forget.iteye.com/blog/1282200

    开发自己的搜索引擎lucene and heritrix

    1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...

    Lucene2.0+Heritrix(源代码)

    这是第一个搜索引擎的代码实例,大家看看

    基于JAVA的搜索引擎 lucene-2.2.0

    如果第一次执行上述程序,指定create为false,由于指定的索引目录下面缺少被追加索引的索引文件,将会抛出异常: Exception in thread "main" java.io.FileNotFoundException: no segments* file found in org....

    Heritrix lucene开发自己的搜索引擎(源码)3

    1.光盘中所附代码的运行环境 服务器Tomcat5.5版本 数据库采用MySQL 5.0 版本 JDK采用1.5.0 Spring采用1.2.8版本 DWR采用1.1.3版本 Windows平台 Tomcat 插件TomcatPlugin(下载地址:...

    JAVA上百实例源码以及开源项目源代码

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA上百实例源码以及开源项目

     当用户发送第一次请求的时候,验证用户登录,创建一个该qq号和服务器端保持通讯连接得线程,启动该通讯线程,通讯完毕,关闭Scoket。  QQ客户端登录界面,中部有三个JPanel,有一个叫选项卡窗口管理。还可以更新...

    JAVA WEB典型模块与项目实战大全.part1(第一卷)

    典型模型与项目实战大全>> 出版社: 清华大学出版社; 第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 下面是其它三卷的链接 第二卷: http://download.csdn.net/detail/jincheng52rmb/5349256 第三卷: ...

    JAVA WEB典型模块与项目实战大全.part2(第二卷)

    第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...

    JAVA WEB典型模块与项目实战大全.part3(第三卷)

    第1版 (2011年1月1日) 平装: 922页 由于上传限制共分成4卷 请手动搜索其它3卷下载 或点击上传者的链接可直接查到 第1篇 开发工具及框架概述 第1章 开发前奏 第2章 MyEclipSO开发工具对各种框架的支持: 第3章 ...

    solr 企业搜索引擎教程

     后台缓存热启:当一个新的搜索器被打开时,可配置的搜索将它热启,避免第一个结果慢 下来,当热启时,当前搜索器处理目前的请求(???)。  后台自动热启:当前搜索器缓存中最常访问的项目在新的搜索器中再次生成,能够在...

    JAVA WEB典型模块与项目实战大全.part4

    第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个是普通搜索,当关键字文本框没有输入任何数据时,单击“搜索”按钮后,可以对数据表中的所有内容进行查询;当在新闻类别选择对话框中选择查询的条件,单击“搜索”按钮后,可以按照新闻类别查询数据表中所有...

Global site tag (gtag.js) - Google Analytics