|
1. 安裝環(huán)境準備 ============== 1.1 安裝Java JDK ---------------- 安裝Java JDK 1.4或更新版本(SUN http://java./products/j2se/). 關于如何在相應的操作系統(tǒng)上安裝JDK,請參考相應文檔。 設置環(huán)境變量: JAVA_HOME=/usr/java/j2sdk1.4.1 PATH=$JAVA_HOME/bin:$PATH CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar 1.2 安裝 JavaCC 2.1 ------------------- 從 JavaCC 項目的主頁 https://javacc.dev./ 下載 JavaCC 2.1 版本 關于如何安裝 JavaCC 2.1 請參考 see https://javacc.dev./doc/installhelp.html 如何找到舊版本的JavaCC https://javacc.dev./files/documents/17/711/JavaCC2_1.class 命令行模式的安裝: java -cp ./ JavaCC2_1 -c 1.3 安裝 Ant ------------ 從 http://ant. 下載Ant關于如何安裝Ant的細節(jié)請參考 http://ant./manual/index.html設置環(huán)境變量 ANT_HOME=/usr/local/ant PATH=$ANT_HOME/bin:$PATH 1.4 安裝Java應用服務器 --------------------- WebLucene 需要 Servlet 2.3 / JSP 1.2 兼容的Java應用服務器。 此版本在Tomcat 4.1.x和Resin 2.1.x上測試通過。 http://jakarta./tomcat/index.html 安裝 Tomcat設置環(huán)境變量: CATALINA_HOME=/usr/local/tomcat-4.1.24 Tomcat在standalone模式下,使用8080端口。 也可以將應用服務器和Web服務器綁定在一起使用,請參考相應的安裝和環(huán)境變量設置 。 1.5 將WebLucene部署到成webapps ----------------------------- 只需將tar.gz包解壓到Tomcat的webapps目錄 2. Build項目 ============ 2.1 準備Build環(huán)境 ---------------- 將build.properties.default重命名成build.properties 在環(huán)境配置文件 build.properties 中設置一下環(huán)境變量: # if the serverlet.jar (or called j2sdk23.jar is not in your classpath), set jsdk_jar jsdk_jar=/usr/local/tomcat/common/lib/servlet.jar # For windows: # jsdk_jar=d:\\usr\\local\\tomcat\\common\\lib\\servlet.jar javacc.home = /usr/java/javacc/bin # javacc.home = d:\\usr\\local\\javacc2_1\\javacc2.1\\bin javacc.zip.dir = ${javacc.home}/lib javacc.zip = ${javacc.zip.dir}/JavaCC.zip 2.2 Build --------- 在weblucene根目錄下運行 "ant build" 命令: % cd /usr/local/tomcat/webapps/weblucene/ % ant build 注意:如果build失敗,請檢查$CLASSPATH 環(huán)境變量,并確保重要的jar包都在相應路 徑下。 如果成功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 ============ weblucene中包含了一個簡單的 xml 文檔 /weblucene/doc/news_sample.xml 關于xml的結構請參考:/weblucene/doc/weblucene_index.dtd 你可以執(zhí)行命令創(chuàng)建索引。 創(chuàng)建索引使用IndexRunner 命令:位于 /weblucene/WEB-INF/classes/IndexRunner.class), 參數(shù)格式: -i xml_url 輸入XML的URL -o output_dir 輸出索引的目錄 注意: XML數(shù)據(jù)源將被索引到 $output_dir的 index 子目錄下,如果對一個舊的索引進行更新 , 舊索引將被備份到$output_dir 的 work 子目錄下, 例子: % cd /usr/local/tomcat/webapps/weblucen/WEB-INF/classes/ % export LIB=/usr/local/tomcat/webapps/weblucen/WEB-INF/lib % java -classpath /usr/local/tomcat/webapps/weblucen/WEB-INF/classes:$LIB/lucene.jar: $LIB/xercesImpl.jar:$LIB/log4j.jar:$LIB/java-getopt.jar 格式: IndexRunner -i /usr/local/tomcat/webapps/weblucene/dump/blog.xml \ -o /usr/local/tomcat/webapps/weblucene/webapp/WEB-INF/var/blog 例如: java IndexRunner -i /home/weblucene/dump/blog.xml -o /home/weblucene/webapp/WEB-INF/var/blog 如果顯示: Congratulations! You‘ve indexed the source xml successfully! 說明索引創(chuàng)建成功 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 SearchRunner -i /home/weblucene/webapp/WEB-INF/var/blog/index -f "FullIndex" -k "2002" 搜索結果將被打印到屏幕上: 4. 部署Web應用 ============= 以下是一個包含了認證設置的resin配置: <web-app id=‘/weblucene‘ app-dir=‘/home/weblucene/webapp‘ class-update-interval=‘120‘> <login-config auth-method=‘basic‘> <authenticator> <class-name>com.caucho.http.security.XmlAuthenticator</class-name> <init-param user=‘username:password:rolename‘/> </authenticator> </login-config> <security-constraint url-pattern=‘/admin‘ role-name=‘rolename‘/> </web-app> 請按照你導入的XML格式準備XSLT模板,并將文件存放成html.xsl 位于 $weblucene_home_directory/WEB-INF/var/appname/ 下 注意: 請將weblucene/webapp/WEB-INF/conf/目錄下的log4j.conf.default重命名成 log4j.conf 另外,你需要為你的每個應用準備一個配置文件,如appname.conf (或appname.properties), 存放到weblucene/webapp/WEB-INF/conf/目錄下,配置文件的內容請參考weblucene.con f. weblucene.conf 中定義了項目的缺省屬性,當同名的屬性出現(xiàn)在appname.conf 中時weblucene.conf 中的屬性值將被覆蓋. 啟動WEB應用服務器: 使用 http://localhost:8080/weblucene/search?dir=app&;q=query方式產看結果輸出。 如果發(fā)現(xiàn):jdom NoClassDefFoundError: lang.NoClassDefFoundError: org/jdom/Document 請將weblucene/webapp/WEB-INF/lib下的jdom.jar復制到 /home/resin/lib/ 下 :-P webluene 的XML輸出格式為: <?xml version="1.0" encoding="GBK"?> <WebLuceneResultProtocol ver="1.0"> <Query>query</Query> <Encoding>GBK</Encoding> <UriEncodedQuery>query</UriEncodedQuery> <Start>0</Start> <Pagesize>10</Pagesize> <OutputFormat>xml</OutputFormat> <DirName>app</DirName> <IndexName>FullIndex</IndexName> <OrderStyle>Date</OrderStyle> <TimeUsed>4.0</TimeUsed> <ShowFields>Title,Author,Content,PubTime</ShowFields> <HighlightFields>Title,Author,Content</HighlightFields> <Total>7015</Total> <TotalResultLimit>1000</TotalResultLimit> <RecordSet> <Record score="0.99999994" id="313619"> <Id>2120</Id> <Title>foo</Title> <Author/> <Content>blah blah</Content> <PubTime>2000-06-13 00:00:00</PubTime> </Record> </RecordSet> <WebLuceneResultProtocol> 5. 輸出成其他格式:HTML/RSS ========================== 你也可以將結果使用XSLT模板轉換成HTML和RSS格式 結果輸出中, 使用:outputFormat=HTML參數(shù)控制輸出為HTML格式, 使用:outputFormat=RSS 參數(shù)控制輸出為RSS 2.0格式 6. 查詢結果的排序方式:DocID/Score 你可以指定查詢結果的排序方式: 使用: orderStyle=DocID 結果將按數(shù)據(jù)加入索引庫的先后順序(倒序方式)排序, 使用: orderStyle=Score 結果將按其匹配度排序 7. 選擇進行檢索的索引 有可能你在一個索引庫中放置了多項索引,每一項索引針對不同的檢索內容, 如以下三項索引AuthorIndex,TitleIndex,AllIndex 分別是針對作者,標題以及 作者 + 標題 + 內容 + ...的索引,那么你可以 使用: index=AuthorIndex 僅對作者一項進行檢索 使用: index=TitleIndex 僅對標題一項進行檢索 使用: index=AllIndex 對更多內容進行檢索 8. 完成的數(shù)據(jù)導入成XML格式的腳本樣例:(PHP)和模板樣例: http://www.blogchina.com/weblucene/dump/ 數(shù)據(jù)庫(SQL SERVER)的PHP導出腳本和crontab腳本 blog_dump.php 從數(shù)據(jù)庫導出BLOG文章到XML comments_dump.php 從數(shù)據(jù)庫導出評論到XML blogchina.inc 數(shù)據(jù)庫鏈接配置文件 dump.sh 每天的導出腳本 index.sh 創(chuàng)建索引腳本 webapp/var/ 相應應用程序的XSLT模板 9. 樣例索引腳本: index.sh ================================ #!/bin/sh # $Id: BUILD.txt,v 1.7 2004/11/21 01:56:37 chedong Exp $ # # dump and rebuild blogchina index in crontab # 2 2 * * * (cd /home/weblucene/dump/; ./dump.sh > dump.log; ./index.sh > index.log) # java export JAVA_HOME=/usr/java/jdk export ANT_HOME=/usr/java/ant # path export PATH=$JAVA_HOME/bin:$ANT_HOME/bin:$PATH export LIB=/home/weblucene/webapp/WEB-INF/lib export CLASSPATH=$LIB/../classes:$LIB/lucene.jar:$LIB/xercesImpl.jar:$LIB/log4j.jar :$LIB/java-getopt.jar export WEBLUCENE=../webapp/WEB-INF/var # rebuild index ARGS="-Xms64m -Xmx256m" java $ARGS IndexRunner -i blog.xml -o $WEBLUCENE/blog java $ARGS IndexRunner -i comments.xml -o $WEBLUCENE/comments 完成了,嘗試使用自己的腳本將數(shù)據(jù)導入到XML格式中,并創(chuàng)建Lucene索引,祝你好運。 |
|
|