luncene

luncene

Apache Lucene是一個開放源程式的搜尋器引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替檔案的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析檔案,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自己需要自訂其功能。

luncene

Apache Lucene是一個開放源程式的搜尋器引擎,利用它可以輕易地為Java軟體加入全文搜尋功能。Lucene的最主要工作是替檔案的每一個字作索引,索引讓搜尋的效率比傳統的逐字比較大大提高,Lucen提供一組解讀,過濾,分析檔案,編排和使用索引的API,它的強大之處除了高效和簡單外,是最重要的是使使用者可以隨時應自己需要自訂其功能。
Lucene是apache軟體基金會【4】 jakarta項目組的一個子項目,是一個開放原始碼【5】的全文檢索引擎工具包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎,部分文本分析引擎(英文與德文兩種西方語言)。Lucene的目的是為軟體開發人員提供一個簡單易用的工具包,以方便的在目標系統中實現全文檢索的功能,或者是以此為基礎建立起完整的全文檢索引擎。
Lucene的原作者是Doug Cutting,他是一位資深全文索引/檢索專家,曾經是V-Twin搜尋引擎【6】的主要開發者,後在Excite【7】擔任高級系統架構設計師,目前從事於一些Internet底層架構的研究。早先發布在作者自己的http://www.lucene.com/,後來發布在SourceForge【8】,2001年年底成為Apache軟體基金會jakarta的一個子項目:http://jakarta.apache.org/lucene/。

Lucene的套用、特點及優勢

作為一個開放原始碼項目,Lucene從問世之後,引發了開放原始碼社群的巨大反響,程式設計師們不僅使用它構建具體的全文檢索套用,而且將之集成到各種系統軟體中去,以及構建Web套用,甚至某些商業軟體也採用了Lucene作為其內部全文檢索子系統的核心。apache軟體基金會的網站使用了Lucene作為全文檢索的引擎,IBM的開源軟體eclipse【9】的2.1版本中也採用了Lucene作為幫助子系統的全文索引引擎,相應的IBM的商業軟體Web Sphere【10】中也採用了Lucene。Lucene以其開放原始碼的特性、優異的索引結構、良好的系統架構獲得了越來越多的套用。

Lucene作為一個全文檢索引擎,其具有如下突出的優點

(1)索引檔案格式獨立於套用平台。Lucene定義了一套以8位位元組為基礎的索引檔案格式,使得兼容系統或者不同平台的套用能夠共享建立的索引檔案。
(2)在傳統全文檢索引擎的倒排索引的基礎上,實現了分塊索引,能夠針對新的檔案建立小檔案索引,提升索引速度。然後通過與原有索引的合併,達到最佳化的目的。
(3)優秀的面向對象的系統架構,使得對於Lucene擴展的學習難度降低,方便擴充新功能
(4)設計了獨立於語言和檔案格式的文本分析接口,索引器通過接受Token流完成索引檔案的創立,用戶擴展新的語言和檔案格式,只需要實現文本分析的接口。
(5)已經默認實現了一套強大的查詢引擎,用戶無需自己編寫代碼即使系統可獲得強大的查詢能力,Lucene的查詢實現中默認實現了布爾操作、模糊查詢(Fuzzy Search【11】)、分組查詢等等。
面對已經存在的商業全文檢索引擎,Lucene也具有相當的優勢。首先,它的開發原始碼發行方式(遵守Apache Software License【12】),在此基礎上程式設計師不僅僅可以充分的利用Lucene所提供的強大功能,而且可以深入細緻的學習到全文檢索引擎製作技術和面相對象編程的實踐,進而在此基礎上根據套用的實際情況編寫出更好的更適合當前套用的全文檢索引擎。在這一點上,商業軟體的靈活性遠遠不及Lucene。其次,Lucene秉承了開放原始碼一貫的架構優良的優勢,設計了一個合理而極具擴充能力的面向對象架構,程式設計師可以在Lucene的基礎上擴充各種功能,比如擴充中文處理能力,從文本擴充到HTML、PDF【13】等等文本格式的處理,編寫這些擴展的功能不僅僅不複雜,而且由於Lucene恰當合理的對系統設備做了程式上的抽象,擴展的功能也能輕易的達到跨平台的能力。最後,轉移到apache軟體基金會後,藉助於apache軟體基金會的網路平台,程式設計師可以方便的和開發者、其它程式設計師交流,促成資源的共享,甚至直接獲得已經編寫完備的擴充功能。最後,雖然Lucene使用Java語言寫成,但是開放原始碼社區的程式設計師正在不懈的將之使用各種傳統語言實現(例如.net framework【14】),在遵守Lucene索引檔案格式的基礎上,使得Lucene能夠運行在各種各樣的平台上,系統管理員可以根據當前的平台適合的語言來合理的選擇。

相關詞條

相關搜尋

熱門詞條

聯絡我們