Lucene入門和使用

本文主要面向具體使用,適用於已熟悉java編程的lucene初學者。
1. Lucene的簡介

1.1 Lucene 歷史


 org.apache.lucene包是純java語言的全文索引檢索工具包。
 Lucene的作者是資深的全文索引/檢索專家,最開始發佈在他本人的主頁上,2001年10月貢獻給APACHE,成爲APACHE基金jakarta的一個子項目。
 目前,lucene廣泛用於全文索引/檢索的項目中。
 lucene也被翻譯成C#版本,目前發展爲Lucene.Net(不過最近好象有流產的消息)。


1.2 Lucene 原理


 lucene的檢索算法屬於索引檢索,即用空間來換取時間,對需要檢索的文件、字符流進行全文索引,在檢索的時候對索引進行快速的檢索,得到檢索位置,這個位置記錄檢索詞出現的文件路徑或者某個關鍵詞
 在使用數據庫的項目中,不使用數據庫進行檢索的原因主要是:數據庫在非精確查詢的時候使用查詢語言“like %keyword%”,對數據庫進行查詢是對所有記錄遍歷,並對字段進行“%keyword%”匹配,在數據庫的數據龐大以及某個字段存儲的數據量龐大的時候,這種遍歷是致命的,它需要對所有的記錄進行匹配查詢。因此,lucene主要適用於文檔集的全文檢索,以及海量數據庫的模糊檢索,特別是對數據庫的xml或者大數據的字符類型。


2.Lucene的下載和配置


2.1 Lucene的下載


 lucene在jakarta項目中的發佈主頁:http://jakarta.apache.org/lucene/docs/index.html。以下主要針對windows用戶,其它用戶請在上面的地址中查找相關下載。


 lucene的.jar包的下載(包括.jar和一個範例demo):
http://apache.oregonstate.edu/jakarta/lucene/binaries/lucene-1.4-final.zip


 lucene的源代碼下載:
http://www.signal42.com/mirrors/apache/jakarta/lucene/source/lucene-1.4-final-src.zip


 lucene的api地址:http://jakarta.apache.org/lucene/docs/api/index.html


 本文使用lucene版本:lucene-1.4-final.jar。


2.2 lucene的配置


 首先請確定你的機子已經進行了java使用環境的基本配置,即確保在某個平臺下能夠運行java源代碼,否則請查閱相關文檔進行配置。
 接下來進入lucene的配置:
 普通使用者:在環境變量的CLASSPATH中添加lucene的位置。比如:“D:/java /lucene-1.4-final/lucene-1.4-final.jar;”。
 jbuilder使用者:在“Project”--“Project Properties”--“Required Libraries”進行添加。
 Jsp使用者:也可以直接將lucene-1.4-final.jar文件放到/WEB-INF/classes下。


3. Lucene 的範例(Demo )


3.1 Demo說明


 可以得到的Demo包括:lucene-demos-1.4-final、XMLIndexingDemo,lucene-demos-1.4-final中包括對普通文件和html文件的兩種索引,XMLIndexingDemo針對xml文件的索引。他們的區別主要在於:對普通文件進行索引時只要對文件的全文進行索引,而針對html、xml文件時,對標籤類型不能進行索引,在實現上:html、xml的索引需要額外的數據流分析器,以分析哪些內容有用哪些無用。因此,在後兩者實現上,索引的時間額外開支,甚至超過索引本身時間,而檢索時間沒有區別。


 以上Demo中,lucene-demos-1.4-final自帶於lucene-1.4-final.zip中,XMLIndexingDemo的下載地址:
http://cvs.apache.org/viewcvs.cgi/jakarta-lucene-sandbox/contributions/XML-Indexing-Demo/


3.2 Demo的運行


 首先將demo.jar的路徑添加如環境變量的CLASSPATH中,例如:“D:/java/lucene-1.4-final/lucene-demos-1.4-final.jar;”,同時確保已經添加lucene-1.4-final.jar。


 然後進行文件的全文索引,在dos控制檯中,輸入命令“java org.apache.lucene.demo.IndexFiles {full-path-to-lucene}/src”,後面的路徑爲所要進行索引的文件夾,例如:“java org.apache.lucene.demo.IndexFiles c:/test”。


 接着對索引進行檢索,敲入“java org.apache.lucene.demo.SearchFiles”,在提示“Query:”後輸入檢索詞,程序將進行檢索列出檢索得到的結果(檢索詞出現的文件路徑)。

 其他Demo的運行請參考/docs/demo.html。
 在運行Demo後請閱讀Demo的源代碼以便深入學習。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章