分类: 系统运维
2008-11-30 20:51:07
lucene的下载和测试
以前上过信息检索的课程,用的是教材Modern Information Retrieval的影印版.这本教材相当经典,讲述了许多非常经典的理论与方法,特
现在跟老师做项目,要用到全文检索的搜索引擎,这让我有机会深入到搜索引擎的学习和研究中去.我们小组通过收集各种资料,进行比较,最后决定采用apache(发音:阿帕奇,就跟apache直升机的读音相同)的开源(open source)项目lucene(发音:/'lu:si:n/),在此基础上,根据我们项目的需要以及团队在信息检索领域的核心技术,对lucene进行二次开发.因此,我们搜索引擎的研究也就是从lucene开始的.本文就上周对lucene的学习和使用中的一些主要问题进行阐述,作为资料共享.
1 lucene
lucene已经成为apache的顶级开源项目,到目前为止,已经发展到
lucene的下载建议到apache的官方主页下载,我用的是校园网,速度还不错.网址是:.我们使用的是java版的,当然也可以找到相应的C++版本的.在下载时可以考虑下载两个文件,一是,这个是经过编译后的可以直接运行DEMO的版本,一是,这个是源代码文件,在运用时需要使用的就是文件里面的内容.下载页上的其他压缩文件可以不用下,因为国内一般不会用到这些东东.
2 lucene
下载后,可以对lucene进行一些简单的测试,以了解其性能.但是由于lucene本身只是一个工具包(Tool Kit),并不能象其他系统一样通过双击.exe就可以直接运行.需要编一个简单的接口,才能正常运行.不过在下载的lucene文件中,已经有一个demo文件,其中有一些简单的接口,可以通过控制台来运行.具体操作如下:
2.1 Java开发环境配置(需要安装JDK,并配置好JDK环境)
我使用的是jdk
2.2 Lucene开发环境配置
先解压下载的,可以看到lucene-core-2.0.0.jar和lucene-demos-2.0.0.jar这两个文件。将其解压到:d:\Java\lucene-2.0.0。
然后,将lucene-core-
2.3 Demo测试
进入控制台,先建立索引,然后就可以执行查询了.具体操作如下:
建立索引:
>java org.apache.lucene.demo.IndexFiles d:\Java\lucene-
该功能是对C:\Java\lucene-
执行查询:
>java org.apache.lucene.demo.SearchFiles
控制台将会出现“Query:”提示符,输入检索关键词,按回车键,便可得到查询结果。
注:我在刚开始学习时,借用了tag的lucene学习笔记,其地址是http://blog.csdn.net/qixiang_nj/archive/2006/04/27/679134.aspx
3 测试结果
经过初步简单的测试,我们发现DEMO实现了一些简单的功能,如它能够执行对文本、html、xml、word、pdf文件的检索,并且支持中英文的检索。但进一步的测试发现,虽然它能够实现以上功能,但其性能较差,因为它能很好的支持英文检索,而对中文的检索则并不那么顺利,这大概是因为其是English Speaking country开发的缘故。比如,在对word文件的检索中,我们发现,如果是纯英文文档,它能够顺利的将其检索出来,而如果是纯中文或中英文混合的文档,则检索不到相关文献。
我分析了一下,觉得其中主要有两个原因,一是DEMO本来只是用来测试的,所以其编得比较简单,自然其效率不高;二是lucene的Analyzer中文分析器效果不好。在我们项目的进展中,解决了这两个问题。
加点小知识,
我们使用lucene会创建index索引文件。demo里面创建的地方在我们使用命令行的地方。
如果说还要使用 就得把以前的index文件删除。
这个是demo 还有一个web的demo
lucene本来就是在 存储的时候会建立一个索引文件,方便后面的搜索。