Windows下Weblucene试用手记
Windows下Weblucene试用手记作者:许立强([email]feifengxlq@hotmail.com[/email])[url]http://blog.sina.com.cn/u/1484006094[/url] 2006-7-12
[b]
一、 下载weblucene[/b]
直接到sourceforget.net去下载最新的版本。最新的是0.5,是2004年发布的,好像之后就没有更新过了。
[b]二、 安装相关软件及编译weblucene[/b]
解压后的文件里面的build.txt里面游详细的说明,按照说明安装。
其中需要注意:
1、 jdk最好是作者推荐的版本1.4。我当时装的是1.5的版本,后来编译的时候总是出错,提示说“\weblucene\webapp\WEB-INF\src\org\apache\lucene\search下的StringFilter.java中出错”。主要是enum在jdk1.5中是系统定义的变量,不能被用户定义使用。你只要把那个文件里面所有的enum改成另外一个,比如我就改成了newenum。
2、 JavaCC必须使用2.1版本。你从[url]https://javacc.dev.java.net/files/documents/17/711/JavaCC2_1.class[/url]下载了JavaCC2_1.class,然后在命令行下输入java -cp ./ JavaCC2_1 –c即可以安装。注意哦,最新版本的javacc版本的安装和2.1的安装是完全不一样的。其他本版的javacc是编译不成功的。我使用最新的4.0测试的时候就没有成功。
3、 “从Sourceforge.net获得Weblucene的最新版本”这一部完全没有必要。当时我学着去用cvs下载。因为我以前不熟悉cvs,所以还不得不重新下载N多软件,安装,学习使用,最后cvs更新下来的和你重sf下载的最新版本完全一样。汗,浪费俺不少时间。
[b]三、 构建索引[/b]
1、 在weblucene\WEB-INF\classes文件目录下我使用命令编译java -cp ../lib/java-getopt.jar;../lib/jdom.jar;../lib/log4j.jar;../lib/lucence.jar;../lib/xalan.jar;../lib/xercesImpl.jar;../lib/servlet-api.jar;./ IndexRunner -i ../../dump/blog.xml -o ../var/blog 没有编译成功,原因未知。
2、 严格按照文档的说明,改成如下命令测试成功。注意,顺序都要一样。java -cp ./;../lib/lucene.jar;../lib/xercesImpl.jar;../lib/log4j.jar;../lib/java-getopt.jar IndexRunner -i ../../../dump/blog.xml -o ../var/blog。(推荐写成一个“..bat”文件)
3、 出现“Great!indexing ok”。这样你在weblucene\WEB-INF\var\blog目录下可以看到一个index文件夹。里面有相关的索引。
[b]四、 搜索测试[/b]
1、 java -cp ./;../lib/lucene.jar;../lib/xercesImpl.jar;../lib/log4j.jar;../lib/java-getopt.jar SearchRunner -i ../var/blog/index -f "FullIndex" -k "收费和扩招的理由"
2、 测试成功。
[b]五、 总结[/b]
1、 weblucene采用的中文分词是CJKAnalyzer分词算法,也就是二分算法。从我测试关关键字“收费和扩招的理由”可以看出,其算法是缺乏有效性的。
2、 weblucene能很好的对xml文件进行索引搜索,对垂直搜索很有帮助。
3、 weblucene是开源的,具有很好的扩展性。如果能对其中的analyzer很好的扩展改进,效果会更加明显。
4、 最后weblucene的搜索端是采用php的。对于我们PHPER来说的确是个好消息。而weblucene的内核也是采用lucene代码的。如果我们使用Zend Framework的lucene包,并扩展之,切和weblucene有效的结合起来应该会是一种很好的垂直搜索工具。
最后,附带上我最近对国内外几种中文分词算法的测试结果。
[b]1、 Lucene2.0的standardAnalyzer分词[/b]a、 完美的英文分词。
b、 能区分email, url ,ip 等等
c、 支持中文分词,采用单个字体分词。不对中文的stopWord过滤(这个我们可以扩展)。
d、 支持stopWord过滤。
e、 支持大小写转化
f、 开源
g、 不需要词库
[b]2、 lucene的CJKAnalyzer分词[/b]
a、 支持中文分词。采用中文二分分词算法,速度快,但数据冗余大。
b、 支持英文分词,但对IP,EMAIL,URL支持不好
c、 开源
d、 不需要词库
[b]3、 vgoogle的GSW5分词[/b]a、 优秀的中文分词。中文分词效果好。
b、 英文分词效果很差
c、 不开源
d、 需要词库支持
[b]4、 计算所汉语词法分析系统ICTCLAS(未找到合适的测试,网上测试一直不初结果)[/b]
[b]5、 第三代智能分词系统3GWS[/b]
A、 很优秀的一个中英文分词工具,极好的中文分词功能
B、 极好的英文分词功能
C、 有效的区分url, email ,ip等等
D、 不开源,遗憾。
E、 需要词库支持
[[i] 本帖最后由 feifengxlq 于 2006-7-12 19:00 编辑 [/i]]
页:
[1]
