首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

Lucene学习札记(一)Lucene入门实例

2012-10-16 
Lucene学习笔记(一)Lucene入门实例学习Lucene有两周时间,现就这两周的学习做一个简单小结,写了一个入门级

Lucene学习笔记(一)Lucene入门实例

学习Lucene有两周时间,现就这两周的学习做一个简单小结,写了一个入门级别的实例,如下面所示;

小结:

一、?Lucene是全文搜索引擎,注意是全文检索,但只检索文本。具体应用可以总结为一句话:先建立索引,再进行搜索;

二、从信息源拷贝到本地进行加工,称为索引库(信息集合),加工主要包括建立索引,具体是把文本中的关键字拆分出来建立索引;搜索时在本地索引库中搜索,具体是把搜索的字符串解析后再到索引库中匹配;

三、文本在建立索引和搜索时都会进行分词,并且要使用同一个分词器。

下面展示运行例子,先贴运行截图:

本例子是一个Web项目,需要运行在Servlet容器中,下载附件War包后部署好项目后,先访问后台http://localhost:8080/lucene/admin/index.jsp添加数据:


Lucene学习札记(一)Lucene入门实例
?如图,在D:\\lucene目录下游许多原始数据,主要包括一些文本文件,如Word,Excel,PPT,txt,HTML,XML等,这些文件中包括许多信息;

提交添加完成后访问主页面http://localhost:8080/lucene/?进行搜索


Lucene学习札记(一)Lucene入门实例
?

点击回车或搜索可以看到结果:


Lucene学习札记(一)Lucene入门实例
?可以看到包含关键字Kobe的文本有上图所示那么多,点击可以进行查看相应文档;

?

代码简要说明:

一、Lucene不能直接对Word,Excel,PPT,PDF等进行检索,检索时需要先抽取出Word,Excel,PPT,PDF包含的文本,抽取文本类为:File2StringUtils,如下所示:

?

二、创建索引部分代码:

private Document getDocument(File file) throws IOException {Document doc = new Document();doc.add(new Field(  "path",   file.getPath(),   Field.Store.YES,   Field.Index.NOT_ANALYZED  ));doc.add(new Field(  "modified",  new SimpleDateFormat("yyyy:MM:dd HH:mm:ss").format(file.lastModified()),   Field.Store.YES,   Field.Index.NOT_ANALYZED  ));doc.add(new Field("contents", getTextualReader(file)));return doc;}private Reader getTextualReader(File file) throws IOException {if(file.getName().endsWith(".doc")) {return new StringReader(File2StringUtils.wordTranslation(file));} else if(file.getName().endsWith(".ppt")) {return new StringReader(File2StringUtils.powerPointTranslation(file));}else if(file.getName().endsWith(".xls")) {return new StringReader(File2StringUtils.excelTranlation(file));}else {return new FileReader(file);}}

?

具体细节代码查看附件

?

?

?

?

?

?

?

?

?

1 楼 wang1352083 2012-08-30   感谢楼主,能把源文件发我一份吗?wang1352083@gmail.com这样就更容易入门lucene了.

热点排行