全文检索Lucene 应用(一)
-- 从源码编译 lucene 3.0.2
1. 下载 lucene 3.0.2 source 和编译所需的组件
$wget –c http://archive.apache.org/dist/lucene/java/lucene-3.0.2-src.tar.gz
$ wget -c --no-check-certificate https://javacc.dev.java.net/files/documents/17/138911/javacc-5.0.tar.gz
$ wget -c http://www.jflex.de/jflex-1.4.3.tar.gz
$ wget –c http://www.atlassian.com/software/clover/downloads/binary/clover-ant-3.0.2.zip
Java 和 ant 使用编译 Ooo 时使用的版本,这里, Java 版本是 1.6.0 _18 。 Ant 的版本是 1.7.1
2. 安装 javacc jflex clover
直接将 javacc jflex clover 解压到 d:/softenv 目录下,将 clover.jar ,以及在 www.atlassian.com 申请来的 license 文件 clover.license copy 到 ant 安装目录的 lib 子目录下
3. 修改编译参数文件
修改 common-build.xml ,如下
< property name =" dev.version " value =" 3.0.2 " />
在 lucene-3.0.2 源码目录下创建 build.properties ,加入如下内容:
javacc.home=D:/SoftEnv/javacc-5.0
jflex.home=D:/SoftEnv/jflex-1.4.3
4. 在 cygwin 环境下编译测试
这里假定你已经有 windows 环境下的 OpenOffice cygwin 编译环境 在 cygwin 运行 openoffice 的编译环境。
$ . ./winenv.set.sh
$ export PATH=$PATH:/cygdrive/d/SoftEnv/apache-ant-1.7.1/bin
# 编译打包 lucene 。下图是编译完成后的结果展示。
$ ant package-all-binary
# 测试 lucene 以及 demo 。 Test all 要花费很长时间,下图是测试完成后的结果。
$ ant test
5. 总结
由于 OpenOffice.Org 从 3.0 开始增加了 lucene 模块,据我了解现在只是在 online help 中用于帮助查找的索引建立,使用的是 2.3.2 版本,而且对中文支持不好。下一步要研究 ① 将 Ooo 中的 lucene 升级到 3.0.2 ,增加 online help 中对中文的支持; ② 研究 lucene 中文分词算法; ③ lucene 在检索以 xml 为基础的文件 ( 如: odf 、 uof) 的使用。