資源描述:
《lucene 全文檢索實(shí)踐》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Lucene全文檢索實(shí)踐Lucene全文檢索實(shí)踐(1)Lucene是ApacheJakarta的一個(gè)子項(xiàng)目,是一個(gè)全文檢索的搜索引擎庫。其提供了簡單實(shí)用的API,通過這些API,可以自行編寫對(duì)文件(TEXT/XML/HTML等)、目錄、數(shù)據(jù)庫的全文檢索程序。Features:*Veryfastindexing,minimalRAMrequired*Indexcompressionto30%oforiginaltext*IndexestextandHTML,documentclassesavailableforXML
2、,PDFandRTF*SearchsupportsphraseandBooleanqueries,plus,minusandquotemarks,andparentheses*Allowssingleandmultiplecharacterwildcardsanywhereinthesearchwords,fuzzysearch,proximity*Willsearchforpunctuationsuchas+or?*Fieldsearchesfortitle,author,etc.,anddate-rangese
3、arching*SupportsmostEuropeanlanguages*Optiontostoreanddisplayfulltextofindexeddocuments*Searchresultsinrelevanceorder*APIsforfileformatconversion,languagesanduserinterfaces實(shí)踐任務(wù):1)編寫Java程序MyIndexer.java,使用JDBC取出MySQL數(shù)據(jù)表內(nèi)容(以某一論壇數(shù)據(jù)做測試),然后通過org.apache.lucene.index
4、.IndexWriter創(chuàng)建索引。2)編寫Java程序MySearcher.java,通過org.apache.lucene.search.IndexSearcher等查詢索引。3)實(shí)現(xiàn)支持中文查詢及檢索關(guān)鍵字高亮顯示。4)通過PHP/JavaIntegration實(shí)現(xiàn)對(duì)MySearch.java的調(diào)用。5)實(shí)現(xiàn)對(duì)PHP手冊(cè)(簡體中文)的全文檢索。Lucene全文檢索實(shí)踐(2)Java的程序基本編寫完成,實(shí)現(xiàn)了對(duì)中文的支持。下一步是將其放到WEB上運(yùn)行,首先想到的是使用JSP,安裝了ApacheTomcat/4.1
5、.24,默認(rèn)的發(fā)布端口是8080?,F(xiàn)在面臨的一個(gè)問題是:Apachehttpd的端口是80,并且我的機(jī)器對(duì)外只能通過80端口進(jìn)行訪問,如果將Tomcat的發(fā)布端口改成80的話,httpd就沒法對(duì)外了,而其上的PHP程序也將無法在80端口運(yùn)行。對(duì)于這個(gè)問題,我想到兩種方案:1、使用PHP直接調(diào)用Java。需要做的工作是使用--with-java重新編譯PHP;2、使用mod_jk做橋接的方式,將servlet引擎結(jié)合到httpd中。需要做的工作是編譯jakarta-tomcat-connectors-jk-1.2.5
6、-src,生成mod_jk.so給httpd使用,然后按照Howto文檔進(jìn)行Tomcat、httpd的配置。對(duì)于第一個(gè)方案的嘗試:使用PHP直接調(diào)用Java環(huán)境*PHP4.3.6prefix=/usr*Apache1.3.27prefix=/usr/local/apache*j2sdk1.4.1_01prefix=/usr/local/jdk配置步驟1)安裝JDK,這個(gè)就不多說了,到GOOGLE可以搜索出這方面的大量文章。2)重新編譯PHP,我的PHP版本是4.3.6:cdphp-4.3.6./configure-
7、-with-java=/usr/local/jdkmakemakeinstall完成之后,會(huì)在PHP的lib下(我的是在/usr/lib/php)有個(gè)php_java.jar,同時(shí)在擴(kuò)展動(dòng)態(tài)庫存放的目錄下(我的是在/usr/lib/php/20020429)有個(gè)java.so文件。到這一步需要注意一個(gè)問題,有些PHP版本生成的是libphp_java.so文件,extension的加載只認(rèn)libphp_java.so,直接加載java.so可能會(huì)出現(xiàn)如下錯(cuò)誤:PHPFatalerror:UnabletoloadJa
8、vaLibrary/usr/local/jdk/jre/lib/i386/libjava.so,error:libjvm.so:cannotopensharedobjectfile:Nosuchfileordirectoryin/home/nio/public_html/java.phponline2所以如果生成的是java.so,需要?jiǎng)?chuàng)建一個(gè)符號(hào)連接:ln