kingpub

海内存知己,博客若比邻

 

WebLucene的安装实践

(转)WebLucene的安装实践

全文搜索的问题是老大难问题,谁都要用到,但是搜索技术可是google和baidu等吃饭的家伙,怎么可能让大家知道。幸好有开源项目Lucene,不 过不支持中文。中文方块字真是难,前几天关注的聊天机器人也就是被方块字给卡死了。不过有了WebLucene,车东的一个开源项目,基于Lucene, 算是给我们带来了福音。
   计划安装WebLucene,网上找了一下资料不多,比较实在的就2篇,不过很不错啦,:)。按部就班的装完,发现还有些问题。就再找了一下,居然自己 忽略了WebLucene的中文安装手册。郁闷,都怪自己的思维定势,什么都先去网上找资料。其实这个中文安装手册已经比较详细了。btw:安装手册是非 windows平台的,所以大家还是有必要找网上的windows安装经验。不过我熟悉unix/linux这些,当然会后悔找资料花了很长时间。
  好的,我来介绍windows的安装过程,我的安装实践。
1. 安装环境准备
==============

1.1 安装Java JDK
—————-
安装Java JDK 1.4或更新版本(SUN http://java.sun.com/products/j2se/).
关于如何在相应的操作系统上安装JDK,请参考相应文档。

设置环境变量:
JAVA_HOME=C:\j2sdk1.4.2_07
PATH=%JAVA_HOME%\bin;%PATH%
CLASSPATH=%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar

1.2 安装 JavaCC 2.1
———————
从 JavaCC 项目的主页 https://javacc.dev.java.net/ 下载 JavaCC 2.1 版本

关于如何安装 JavaCC 2.1 请参考
see https://javacc.dev.java.net/doc/installhelp.html
如何找到旧版本的JavaCC
https://javacc.dev.java.net/files/documents/17/711/JavaCC2_1.class

命令行模式的安装:
java -cp ./ JavaCC2_1 -c
(如果不加-c就是图形模式安装)
我推荐下在zip版本;下载javacc2.1  点击下载此文件, 解压缩javacc2.1版本,在dos下进入目录(也就是JavaCC2_1.class的目录),执行java -cp ./ JavaCC2_1 -c,会出现一些提示信息,回车直至出现让你输入安装目录的提示Enter installation directory,输入你要安装的目录,我的是:C:\Develop\javacc2.1。安装成功后,桌面会出现一个javacc的图标(不知道是 不是一个马头,呵呵)。
(特别注意:感觉weblucene只支持javacc2.1,反正最新javacc3.2版本不能够用)

1.3 安装 Ant
————
http://ant.apache.org 下载Ant关于如何安装Ant的细节请参考 http://ant.apache.org/manual/index.html

设置环境变量
ANT_HOME=C:\java\ant-1.6.5
PATH=%ANT_HOME%\bin;%PATH%

在dos窗口输入ant,如果出现:
Buildfile: build.xml does not exist!
Build failed
则证明安装成功。

1.4 安装Java应用服务器
———————
WebLucene 需要 Servlet 2.3 / JSP 1.2 兼容的Java应用服务器。 此版本在Tomcat 4.1.x和Resin 2.1.x上测试通过。

http://jakarta.apache.org/tomcat/index.html 安装 Tomcat

设置环境变量:
CATALINA_HOME=C:\Develop\Tomcat4.1

Tomcat在standalone模式下,使用8080端口。
也可以将应用服务器和Web服务器绑定在一起使用,请参考相应的安装和环境变量设置。

进 入tomcat的安装目录C:\Develop\Tomcat4.1\bin,双击打开startup.bat就可以启动tomcat。启动时会跳出一个 dos窗口,出现一大堆提示信息,最后会有一句Server startup in **** ms,这样就表示安装成功,服务启动了。

1.5 将WebLucene部署到成webapps
—————————–
只需将tar.gz包解压到Tomcat的webapps目录(官方解释)
我的做法是将weblucene.gz解压,得到weblucene文件,没有后缀。对文件改名成weblucene.rar。再解压。对解压的文件复制到Tomcat的webapps目录
C:\Develop\Tomcat4.1\webapps\weblucene下面有一个文件build.properties.default,将其重命名为build.properties。

修改build.properties的内容为:
jsdk_jar=C:\\Develop\\Tomcat4.1\\\common\\lib\\servlet.jar
javacc.home = C:\\Develop\\javacc2.1\\bin
javacc.zip.dir = C:\\Develop\\javacc2.1\\bin\\lib
javacc.zip = C:\\Develop\\javacc2.1\\bin\\lib\\JavaCC.zip

需要检查自己的目录中,是否有servlet.jar和JavaCC.zip这两个文件,因为版本不一样,有的命名也不一样。路径是\\,而不是/,大家不要搞错了。同样建议不要使用环境变量%,因为好像这里不起作用,:(

2.2 Build
———
在weblucene根目录下运行 “ant build” 命令:

C:\Develop\Tomcat4.1\webapps\weblucene>ant build

注意:如果build失败,请检查%CLASSPATH% 环境变量,并确保重要的jar包都在相应路径下。
提示失败而前面的步骤(安装工具以及环境变量的设置)又都正确,那就检查build.properties文件是否正确,以及build.xml是否正确。根据提示信息,检查出了什么错误,直至成功。成功后会出现:
BUILD SUCCESSFUL
Total time: 5 seconds
成功Build, 下一步就是准备索引了。

直接解压下载的文件即可。如果你要最新版本,按以下方法。
程序代码

从Sourceforge.net获得Weblucene的最新版本:
匿名导出:
cvs -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/weblucene login
cvs -z3 -d:pserver:anonymous@cvs.sourceforge.net:/cvsroot/weblucene co weblucene
sourceforge.net 的cvs 操作起来要稍微麻烦一些,必须先通过ssh username@cvs.sourceforge.net,
ssh username@cvs.sourceforge.net
把 CVS_RSH 设置为ssh,
export CVS_RSH=ssh
然后才能够通过ext模式进行更新和提交,每次add、commit 操作都要输入一次密码:
cvs -d:ext:username@cvs.sourceforge.net:/cvsroot/weblucene export -D now weblucene

3. 准备Index
============
(在这里要特别注意:在准备索引的时候要先检查jdk的版本,1.3版本是出错的,要1.4以上的才可以)
weblucene中包含了一个简单的 xml 文档 /weblucene/doc/news_sample.xml
关于xml的结构请参考:/weblucene/doc/weblucene_index.dtd
你可以执行命令创建索引。

创建索引使用IndexRunner 命令:位于 /weblucene/WEB-INF/classes/IndexRunner.class),

参数格式:
-i xml_url 输入XML的URL
-o output_dir 输出索引的目录

注意:
XML数据源将被索引到 $output_dir的 index 子目录下,如果对一个旧的索引进行更新,
旧索引将被备份到$output_dir 的 work 子目录下,

例子:
在dump下面有个blog.xml,这是一些文章素材,你可以对其建立索引测试,也可以使用自己的语料建立索引。
进入C:\Develop\tomcat4.1\webapps\weblucene\WEB-INF\classes,在这个目录下面有一个IndexRunner的文件。在该目录下面建立一个run.bat的文件,内容如下:
程序代码

set LIB=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\lib
set SERVLETLIB=C:\Develop\tomcat4.1\common\lib
set CLASSESLIB=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\classes
set XMLPATH=C:\Develop\tomcat4.1\webapps\weblucene\dump
set LOGPATH=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\var

java -cp %CLASSESLIB%;%LIB%\java-getopt.jar;%LIB%\jdom.jar;%LIB%\log4j.jar;%LIB%\lucene.jar;%LIB%\xalan.jar;%LIB%\xercesImpl.jar;%SERVLETLIB%\servlet.jar;./ IndexRunner -i %XMLPATH%\blog.xml -o %LOGPATH%\blog

每次需要执行索引的时间,在该目录下输入文件名直接执行或是图形界面下双击该文件均可。
成功后会出现:
50 rows added Total time Use:0 second
750 [main] INFO IndexRunner - Great! Indexing OK

注意:确保路径中没有空格,一般tomcat4.1会目录路径上tomcat和4.1之前有空格。切记!

3. 运行搜索测试
==============

SearchRunner (位于 /weblucene/WEB-INF/classes/SearchRunner.class) 是一个命令行的索引测试工具

格式:
%java SearchRunner -i $weblucene_home_directory/WEB-INF/var/$dir_name/index \
-f IndexName -k “query keywords”
例如:
还 是刚才的目录,执行命令:java -cp ../lib/java-getopt.jar;../lib/jdom.jar;../lib/log4j.jar;../lib/lucene.jar;../lib/xalan.jar;../lib/xercesImpl.jar;../lib/servlet.jar;./ SearchRunner -i ../var/blog/index -f “FullIndex” -k “SOAP”

当然也可以做成bat文件。
程序代码

set LIB=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\lib
set SERVLETLIB=C:\Develop\tomcat4.1\common\lib
set CLASSESLIB=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\classes
set XMLPATH=C:\Develop\tomcat4.1\webapps\weblucene\dump
set LOGPATH=C:\Develop\tomcat4.1\webapps\weblucene\webapp\WEB-INF\var

java -cp %CLASSESLIB%;%LIB%\java-getopt.jar;%LIB%\jdom.jar;%LIB%\log4j.jar;%LIB%\lucene.jar;%LIB%\xalan.jar;%LIB%\xercesImpl.jar;%SERVLETLIB%\servlet.jar;./ SearchRunner -i %LOGPATH%\blog\index -f “FullIndex” -k “SOAP”

这样就会出现搜索到的文章信息了。因为我们刚才建索引时,把索引建在了var/blog/目录下,所以现在就要使用../var/blog/index,如果你刚才建立的不是这个目录,记得修改。
SOAP的含义就是关键词,也就是你要搜索含java的文章。FullIndex就是有索引的项,你对那几个字段建立了索引,都会写在FullIndex这个字段里面。

搜索结果将被打印到屏幕上:
程序代码

— find 1
score=0.48 http://www.javaws.com/snipsnap/space/2003-12-08#apache.axis
.tcp.monitor>

posted on 2006-08-30 14:06 xiaofeng 阅读(394) 评论(0)  编辑  收藏 所属分类: weblucene


只有注册用户登录后才能发表评论。


网站导航:
 

导航

统计

常用链接

留言簿(2)

随笔分类

随笔档案

文章分类

文章档案

收藏夹

搜索

最新评论

阅读排行榜

评论排行榜