Chinaunix首页 | 论坛 | 博客
  • 博客访问: 64554
  • 博文数量: 34
  • 博客积分: 2010
  • 博客等级: 大尉
  • 技术积分: 360
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-20 10:39
文章分类
文章存档

2010年(3)

2009年(5)

2008年(26)

我的朋友
最近访客

分类: 系统运维

2008-11-30 20:51:07

lucene的下载和测试

 

   以前上过信息检索的课程,用的是教材Modern Information Retrieval的影印版.这本教材相当经典,讲述了许多非常经典的理论与方法,别是老师独特的上课方式,以及老师本身对于信息检索领域的热情(用她自己的话说是very enjoy),这让我也对信息检索产生了浓厚的兴趣,对信息检索的各种模型也都较熟悉.然而,虽然日常用到了各种搜索引擎,但是并没有触及过任何一个搜索引擎的内核.因此,之前对于信息检索的了解也顶多停留在一些经典模型的掌握和日常搜索引擎的使用上.

    现在跟老师做项目,要用到全文检索的搜索引擎,这让我有机会深入到搜索引擎的学习和研究中去.我们小组通过收集各种资料,进行比较,最后决定采用apache(发音:阿帕奇,就跟apache直升机的读音相同)的开源(open source)项目lucene(发音:/'lu:si:n/),在此基础上,根据我们项目的需要以及团队在信息检索领域的核心技术,lucene进行二次开发.因此,我们搜索引擎的研究也就是从lucene开始的.本文就上周对lucene的学习和使用中的一些主要问题进行阐述,作为资料共享.

1 lucene2.0.0的下载

   lucene已经成为apache的顶级开源项目,到目前为止,已经发展到2.0.0版本,这个版本在今年526才发表.lucene自身的介绍和国内外一些用户的评论来看,2.0.0版的性能在以前版本的基础上有了很大的提高.所以,在我们的项目中也使用了2.0.0版的.

   lucene的下载建议到apache的官方主页下载,我用的是校园网,速度还不错.网址是:.我们使用的是java版的,当然也可以找到相应的C++版本的.在下载时可以考虑下载两个文件,一是,这个是经过编译后的可以直接运行DEMO的版本,一是,这个是源代码文件,在运用时需要使用的就是文件里面的内容.下载页上的其他压缩文件可以不用下,因为国内一般不会用到这些东东

2 lucene2.0.0的测试

   下载后,可以对lucene进行一些简单的测试,以了解其性能.但是由于lucene本身只是一个工具包(Tool Kit),并不能象其他系统一样通过双击.exe就可以直接运行.需要编一个简单的接口,才能正常运行.不过在下载的lucene文件中,已经有一个demo文件,其中有一些简单的接口,可以通过控制台来运行.具体操作如下

2.1 Java开发环境配置(需要安装JDK,并配置好JDK环境)

   我使用的是jdk1.5.0_07,安装目录为:D:\java\jdk1.5.0_07.

2.2 Lucene开发环境配置

   先解压下载的,可以看到lucene-core-2.0.0.jarlucene-demos-2.0.0.jar这两个文件。将其解压到:d:\Java\lucene-2.0.0

    然后,lucene-core-2.0.0.jarlucene-demos-2.0.0.jar文件所在路径添加到classpath(类路径),其设置跟配置JDKclasspath的方法一样。比如,在我所建的目录下,就需要将d:\Java\lucene-2.0.0\lucene-core-2.0.0.jard:\Java\lucene-2.0.0\lucene-demos-2.0.0.jar添加到环境变量的classpath.

2.3 Demo测试

   进入控制台,先建立索引,然后就可以执行查询了.具体操作如下:

建立索引:

>java org.apache.lucene.demo.IndexFiles d:\Java\lucene-2.0.0\src

该功能是对C:\Java\lucene-1.9.1\src下所有文件建立索引,同时,在当前命令行位置将生成“index”文件夹,"index"文件夹用与存储文件索引的数据。

执行查询:

>java org.apache.lucene.demo.SearchFiles

控制台将会出现“Query:”提示符,输入检索关键词,按回车键,便可得到查询结果。 

:我在刚开始学习时,借用了taglucene学习笔记,其地址是http://blog.csdn.net/qixiang_nj/archive/2006/04/27/679134.aspx

3 测试结果

   经过初步简单的测试,我们发现DEMO实现了一些简单的功能,如它能够执行对文本、htmlxmlwordpdf文件的检索,并且支持中英文的检索。但进一步的测试发现,虽然它能够实现以上功能,但其性能较差,因为它能很好的支持英文检索,而对中文的检索则并不那么顺利,这大概是因为其是English Speaking country开发的缘故。比如,在对word文件的检索中,我们发现,如果是纯英文文档,它能够顺利的将其检索出来,而如果是纯中文或中英文混合的文档,则检索不到相关文献。

    我分析了一下,觉得其中主要有两个原因,一是DEMO本来只是用来测试的,所以其编得比较简单,自然其效率不高;二是luceneAnalyzer中文分析器效果不好。在我们项目的进展中,解决了这两个问题。

 

 

加点小知识,

我们使用lucene会创建index索引文件。demo里面创建的地方在我们使用命令行的地方。

如果说还要使用 就得把以前的index文件删除。

这个是demo 还有一个web的demo

lucene本来就是在 存储的时候会建立一个索引文件,方便后面的搜索。

阅读(1187) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~