Lucene
来自维基百科,自由的百科全书
Lucene是一套用於全文檢索和搜尋的開放源碼程式庫,由Apache軟件基金會支持和提供。Lucene提供了一個簡單卻強大的應用程式介面,能夠做全文索引和搜索。Lucene被廣泛應用作搜索應用的標準基礎庫[1][2][3]。
Lucene現已被移植到其他編程語言,包括Object Pascal、Perl、C♯、C++、Python、Ruby和PHP[4]。
歷史
Doug Cutting在1999年編寫了Lucene[5],他是一位資深的全文索引及檢索專家,曾經是V-Twin搜索引擎的主要開發者,後來在Excite擔任高級系統架構設計師,目前從事於一些互聯網底層架構的研究。他貢獻出Lucene的目標是為各種中小型應用程式加入全文檢索功能。Lucene最初可以從SourceForge網站的主頁下載,它於2001年9月加入Apache軟件基金會的Jakarta開源Java產品家族,並於2005年2月成為獨立的頂級Apache項目。Lucene這個名字是Doug Cutting妻子的中間名,也是她外祖母的名字[6]。
Lucene以前包含了許多子項目,例如 Lucene.NET、Mahout、Tika and Nutch。這三個現在已經成為了獨立的頂級Apache項目。
2010年3月,Apache Solr搜索服務器作為Lucene子項目加入,合併了開發者社區。
4.0版於2012年10月12日發布[7]。
2021年3月,Lucene更改了logo,Apache Solr再次成為頂級Apache項目,獨立於 Lucene。
功能和常見用途
雖然理論上Lucene適用於任何需要全文索引和搜索功能的應用程序,但其主要是因為在Internet搜索引擎和本地單站點搜索實現中的實用性而受到認可[8][9]。
Lucene也被用於實現推薦系統[11]。例如,Lucene的'MoreLikeThis'類可以生成相似文檔的推薦。在將「MoreLikeThis」基於向量的相似性方法與基於引用的文檔相似性度量(例如共引和共引鄰近度分析)進行比較時,Lucene的方法在推薦具有非常相似的結構特徵和更窄相關性的文檔上表現出色[12]。相比之下,基於引用的文檔相似性度量往往更適合推薦更廣泛相關的文檔[12]。
基於Lucene的項目
Lucene本身只是一個索引和搜索庫,不包含爬取和HTML解析功能。但是,以下的項目擴展了Lucene的功能:
- Apache Nutch — 提供成熟可用的網絡爬蟲[13]
- Apache Solr — 基於Lucene核心的高性能搜索服務器,提供JSON/Python/Ruby API[14]
- Compass – Elasticsearch的前身[15]
- CrateDB – 基於Lucene構建的開源分布式SQL數據庫[16]
- DocFetcher — 跨平台的本機文件搜索桌面程序[來源請求][17]
- Elasticsearch —企業搜索平台,目的是組織數據並使其易於獲取[18]
- Kinosearch – 用Perl和C語言[19]實現的搜索引擎與Lucene的移植[20]。Socialtext wiki[19]和MojoMojo wiki均使用了這一搜索引擎[21]。 它在人類代謝物組數據庫(HMDB)[22] 和毒素與毒素目標數據庫(T3DB)[23]中亦有應用。
- MongoDB Atlas Search – 基於MongoDB和Apache Lucene的雲原生企業搜索應用程序
- OpenSearch – 基於Elasticsearch 7的開源企業級搜索服務器
- Swiftype — 基於Lucene的企業級搜索[24]
- Lucene.NET — 提供給.Net平台用戶的Lucene類庫的封裝[25]
- Apache Lucy — 為動態語言提供全文搜索的能力,是Lucene Java 庫的C接口[26]
- Luke — Java編寫的用戶界面用於編輯Lucene的索引,此項目已停止開發[27]
參見
- Solr - 使用Lucene的企業搜索伺服器,亦由Apache軟件基金會所研發。
參考資料
外部連結
Wikiwand - on
Seamless Wikipedia browsing. On steroids.