WIKI使用導(dǎo)航
站長百科導(dǎo)航
站長專題
- 網(wǎng)站推廣
- 網(wǎng)站程序
- 網(wǎng)站賺錢
- 虛擬主機(jī)
- cPanel
- 網(wǎng)址導(dǎo)航專題
- 云計算
- 微博營銷
- 虛擬主機(jī)管理系統(tǒng)
- 開放平臺
- WIKI程序與應(yīng)用
- 美國十大主機(jī)
Lucene
Lucene是Apache軟件基金會jakarta項目組的一個子項目,是一個開源代碼的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構(gòu),提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是為軟件開發(fā)人員提供一個簡單易用的工具包,以方便的在目標(biāo)系統(tǒng)中實現(xiàn)全文檢索的功能,或者是以此為基礎(chǔ)建立起完整的全文檢索引擎。
Lucene的原作者是Doug Cutting,他是一位資深全文索引/檢索專家,曾經(jīng)是V-Twin搜索引擎的主要開發(fā)者,后在Excite擔(dān)任高級系統(tǒng)架構(gòu)設(shè)計師,目前從事于一些Internet底層架構(gòu)的研究。早先發(fā)布在作者自己的http://www.lucene.com/,后來發(fā)布在SourceForge,2001年年底成為apache軟件基金會jakarta的一個子項目:http://jakarta.apache.org/lucene/。
發(fā)布?xì)v史
Lucene最初是由Doug Cutting開發(fā)的,在SourceForge的網(wǎng)站上提供下載。在2001年9月做為高質(zhì)量的開源Java產(chǎn)品加入到Apache軟件基金會的 Jakarta家族中。隨著每個版本的發(fā)布,這個項目得到明顯的增強(qiáng),也吸引了更多的用戶和開發(fā)人員。2004年7月,Lucene1.4版正式發(fā)布,10月的1.4.2版本做了一次bug修正。顯示了Lucene的發(fā)布?xì)v史?! ?
- 0.01 2000年3月 第一個開源版本(SourceForge)
- 1.0 2000年10月
- 1.01b 2001年7月 最后的SourceForge版本
- 1.2 2002年6月 第一個Apache Jakarta版本
- 1.3 2003年12月 復(fù)合索引格式,查詢分析器增加,遠(yuǎn)程搜索,token定位,可擴(kuò)展的API
- 1.4 2004年7月 Sorting, span queries, term vectors
- 1.4.1 2004年8月 排序性能的bug修正
- 1.4.2 2004年10月 IndexSearcher optimization and misc. fixes
- 1.4.3 2004年冬 Misc. fixes2.4.1 2009年3月8日發(fā)布新版本
- 2.3.0 2008年1月 更新為2.3.0
- 2.4.0 2008年10月 更新為2.4.0
- 2.4.1 2009年 5月 更新為 2.4.1
- 2.9.0 2009年9月25號 更新為2.9.0
- 2.9.1 2009年11月6號 更新為2.9.1
- 3.0.0 2009年11月25號 更新為3.0.0
特點(diǎn)優(yōu)勢
作為一個開放源代碼項目,Lucene從問世之后,引發(fā)了開放源代碼社群的巨大反響,程序員們不僅使用它構(gòu)建具體的全文檢索應(yīng)用,而且將之集成到各種系統(tǒng)軟件中去,以及構(gòu)建Web應(yīng)用,甚至某些商業(yè)軟件也采用了Lucene作為其內(nèi)部全文檢索子系統(tǒng)的核心。apache軟件基金會的網(wǎng)站使用了Lucene作為全文檢索的引擎,IBM的開源軟件Eclipse的2.1版本中也采用了Lucene作為幫助子系統(tǒng)的全文索引引擎,相應(yīng)的IBM的商業(yè)軟件Web Sphere中也采用了Lucene。Lucene以其開放源代碼的特性、優(yōu)異的索引結(jié)構(gòu)、良好的系統(tǒng)架構(gòu)獲得了越來越多的應(yīng)用。
Lucene是一個高性能、可伸縮的信息搜索(IR)庫。它使你可以為你的應(yīng)用程序添加索引和搜索能力。Lucene是用java實現(xiàn)的成熟的、免費(fèi)的開源項目,是著名的Apache Jakarta大家庭的一員,并且基于在Apache軟件許可 [ASF, License]。同樣,Lucene是當(dāng)前與近幾年內(nèi)非常流行的免費(fèi)的Java信息搜索(IR)庫。
Lucene作為一個全文檢索引擎,其具有如下突出的優(yōu)點(diǎn):
- (1)索引文件格式獨(dú)立于應(yīng)用平臺。Lucene定義了一套以8位字節(jié)為基礎(chǔ)的索引文件格式,使得兼容系統(tǒng)或者不同平臺的應(yīng)用能夠共享建立的索引文件。
- (2)在傳統(tǒng)全文檢索引擎的倒排索引的基礎(chǔ)上,實現(xiàn)了分塊索引,能夠針對新的文件建立小文件索引,提升索引速度。然后通過與原有索引的合并,達(dá)到優(yōu)化的目的。
- (3)優(yōu)秀的HTML、[[[PDF]]]等等文本格式的處理,編寫這些擴(kuò)展的功能不僅僅不復(fù)雜,而且由于Lucene恰當(dāng)合理的對系統(tǒng)設(shè)備做了程序上的抽象,擴(kuò)展的功能也能輕易的達(dá)到跨平臺的能力。
最后,轉(zhuǎn)移到apache軟件基金會后,借助于apache軟件基金會的網(wǎng)絡(luò)平臺,程序員可以方便的和開發(fā)者、其它程序員交流,促成資源的共享,甚至直接獲得已經(jīng)編寫完備的擴(kuò)充功能。最后,雖然Lucene使用Java語言寫成,但是開放源代碼社區(qū)的程序員正在不懈的將之使用各種傳統(tǒng)語言實現(xiàn)(例如.net framework),在遵守Lucene索引文件格式的基礎(chǔ)上,使得Lucene能夠運(yùn)行在各種各樣的平臺上,系統(tǒng)管理員可以根據(jù)當(dāng)前的平臺適合的語言來合理的選擇。
設(shè)計原理
lucene的檢索算法屬于索引檢索,即用空間來換取時間,對需要檢索的文件、字符流進(jìn)行全文索引,在檢索的時候?qū)λ饕M(jìn)行快速的檢索,得到檢索位置,這個位置記錄檢索詞出現(xiàn)的文件路徑或者某個關(guān)鍵詞。
在使用數(shù)據(jù)庫的項目中,不使用數(shù)據(jù)庫進(jìn)行檢索的原因主要是:數(shù)據(jù)庫在非精確查詢的時候使用查詢語言“l(fā)ike %keyword%”,對數(shù)據(jù)庫進(jìn)行查詢是對所有記錄遍歷,并對字段進(jìn)行 “%keyword%”匹配,在數(shù)據(jù)庫的數(shù)據(jù)龐大以及某個字段存儲的數(shù)據(jù)量龐大的時候,這種遍歷是致命的,它需要對所有的記錄進(jìn)行匹配查詢。因此,lucene主要適用于文檔集的全文檢索,以及海量數(shù)據(jù)庫的模糊檢索,特別是對數(shù)據(jù)庫的xml或者大數(shù)據(jù)的字符類型。
安裝使用
相關(guān)資源
- 官方地址:http://lucene.apache.org/
- 軟件類型:開源軟件
- 下載地址:http://www.apache.org/dyn/closer.cgi/lucene/java/
- 推薦閱讀:征服AJAX + LUCENE構(gòu)建搜索引擎
相關(guān)條目
參考來源