初试lucene

简介: lucene 的下载和测试      以前 上过信息检索的课程 , 用的是教材 Modern Information Retrieval 的影印版 . 这本教材相当经典 , 讲述了许多非常经典的理论与方法 , 特别是老师独特的上课方式 ,...

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 版本 , 这个版本在今年 5 26 才发表 . lucene 自身的介绍和国内外一些用户的评论来看 ,2.0.0 版的性能在以前版本的基础上有了很大的提高 . 所以 , 在我们的项目中也使用了 2.0.0 版的 .

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

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-2.0.0.zip ,可以看到 lucene-core-2.0.0.jar lucene-demos-2.0.0.jar 这两个文件。将其解压到: d:/Java/lucene-2.0.0

    然 后 , lucene-core-2.0.0.jar lucene-demos-2.0.0.jar 文件所在路径添加到 classpath( 类路径 ), 其设置跟配置 JDK classpath 的方法一样。比如 , 在我所建的目录下 , 就需要将 d:/Java/lucene-2.0.0/lucene-core-2.0.0.jar d:/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:” 提示符,输入检索关键词,按回车键,便可得到查询结果。  

: 我在刚开始学习时 , 借用了 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本来就是在 存储的时候会建立一个索引文件,方便后面的搜索。

目录
相关文章
|
6月前
|
算法 索引
一篇文章讲明白Lucene学习总结之九:Lucene的查询对象(2)
一篇文章讲明白Lucene学习总结之九:Lucene的查询对象(2)
26 0
|
存储 自然语言处理 算法
Lucene学习总结
Lucene学习总结
107 0
Lucene学习总结
|
存储 缓存 监控
真正的缓存之王,Google Guava 只是弟弟(一)
前面刚说到Guava Cache,他的优点是封装了get,put操作;提供线程安全的缓存操作;提供过期策略;提供回收策略;缓存监控。当缓存的数据超过最大值时,使用LRU算法替换。这一篇我们将要谈到一个新的本地缓存框架:Caffeine Cache。它也是站在巨人的肩膀上-Guava Cache,借着他的思想优化了算法发展而来。 本篇博文主要介绍Caffine Cache 的使用方式,以及Caffine Cache在SpringBoot中的使用。
真正的缓存之王,Google Guava 只是弟弟(一)
|
存储 自然语言处理 搜索推荐
快速上手搜索引擎的秘密武器——Lucene
这篇文章介绍下这个 Lucene,下篇写写 ElasticSearch , 然后再继续填 Spring 的坑 🕳 内容的话就很基础啦🐖,希望能帮你快速入门,了解下它
152 0
|
存储 缓存 NoSQL
真正的缓存之王,Google Guava 只是弟弟(二)
真正的缓存之王,Google Guava 只是弟弟(二)
|
自然语言处理 搜索推荐
Lucene Luke源码分析
假期重新把之前在新浪博客里面的文字梳理了下,搬到这里。
164 0
Lucene Luke源码分析
|
自然语言处理 Java 索引
lucene4.0学习心得
lucene4.0在项目中的使用,学习心得,全局搜索参考
1604 0
|
存储 Java Apache
|
自然语言处理 索引