Lucene
Lucene是一套用於全文檢索和搜尋的開放原始碼程式庫,由Apache軟件基金會支援和提供。Lucene提供了一個簡單卻強大的應用程式介面,能夠做全文索引和搜尋。Lucene被廣泛應用作搜尋應用的標準基礎庫[1][2][3]。
開發者 | Apache軟件基金會 |
---|---|
首次釋出 | 1999年 |
目前版本 | 9.4.1(2022年10月24日 | )
原始碼庫 | |
程式語言 | Java |
作業系統 | 跨平臺 |
類型 | 搜尋及全文檢索 |
特許條款 | Apache特許條款 2.0 |
網站 | lucene |
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軟件基金會所研發。
參考資料
- ^ Kamphuis, Chris; de Vries, Arjen P.; Boytsov, Leonid; Lin, Jimmy, Jose, Joemon M.; Yilmaz, Emine; Magalhães, João; Castells, Pablo , 編, Which BM25 Do You Mean? A Large-Scale Reproducibility Study of Scoring Variants, Advances in Information Retrieval (Cham: Springer International Publishing), 2020, 12036: 28–34 [2021-06-07], ISBN 978-3-030-45441-8, PMC 7148026 , doi:10.1007/978-3-030-45442-5_4 (英語)
- ^ Grand, Adrien; Muir, Robert; Ferenczi, Jim; Lin, Jimmy, Jose, Joemon M.; Yilmaz, Emine; Magalhães, João; Castells, Pablo , 編, From MAXSCORE to Block-Max Wand: The Story of How Lucene Significantly Improved Query Evaluation Performance, Advances in Information Retrieval (Cham: Springer International Publishing), 2020, 12036: 20–27 [2021-06-07], ISBN 978-3-030-45441-8, PMC 7148045 , doi:10.1007/978-3-030-45442-5_3 (英語)
- ^ Azzopardi, Leif; Moshfeghi, Yashar; Halvey, Martin; Alkhawaldeh, Rami S.; Balog, Krisztian; Di Buccio, Emanuele; Ceccarelli, Diego; Fernández-Luna, Juan M.; Hull, Charlie; Mannix, Jake; Palchowdhury, Sauparna. Lucene4IR: Developing Information Retrieval Evaluation Resources using Lucene. ACM SIGIR Forum. 2017-02-14, 50 (2): 58–75 [2022-07-25]. ISSN 0163-5840. doi:10.1145/3053408.3053421. (原始內容存檔於2022-07-28) (英語).
- ^ LuceneImplementations. apache.org. [23 September 2015]. (原始內容存檔於6 October 2015).
- ^ KeywordAnalyzer Better Search with Apache Lucene and Solr (PDF). 19 November 2007. (原始內容 (PDF)存檔於31 January 2012).
- ^ Barker, Deane. Web Content Management. O'Reilly. 2016: 233. ISBN 978-1491908105.
- ^ Apache Lucene - Welcome to Apache Lucene. apache.org. [4 February 2016]. (原始內容存檔於4 February 2016).
- ^ McCandless, Michael; Hatcher, Erik; Gospodnetić, Otis. Lucene in Action, Second Edition . Manning. 2010: 8. ISBN 978-1933988177.
- ^ GNU/Linux Semantic Storage System (PDF). glscube.org. (原始內容 (PDF)存檔於2010-06-01).
- ^ Apache Lucene - Query Parser Syntax. lucene.apache.org. (原始內容存檔於2017-05-02).
- ^ J. Beel, S. Langer, and B. Gipp, 「The Architecture and Datasets of Docear’s Research Paper Recommender System,」 in Proceedings of the 3rd International Workshop on Mining Scientific Publications (WOSP 2014) at the ACM/IEEE Joint Conference on Digital Libraries (JCDL 2014), London, UK, 2014
- ^ 12.0 12.1 M. Schwarzer, M. Schubotz, N. Meuschke, C. Breitinger, V. Markl, and B. Gipp, https://www.gipp.com/wp-content/papercite-data/pdf/schwarzer2016.pdf (頁面存檔備份,存於互聯網檔案館) "Evaluating Link-based Recommendations for Wikipedia" in Proceedings of the 16th ACM/IEEE-CS Joint Conference on Digital Libraries (JCDL), New York, NY, USA, 2016, pp. 191-200.
- ^ [email protected]. Apache Nutch™ -. nutch.apache.org. [2016-11-29]. (原始內容存檔於2021-01-26).
- ^ What are the main differences between ElasticSearch, Apache Solr and SolrCloud? - Quora. quora.com. [23 September 2015].
- ^ The Future of Compass & Elasticsearch. the dude abides. [2015-10-14]. (原始內容存檔於2015-10-15) (英語).
- ^ Wayner, Peter. 11 cutting-edge databases worth exploring now. InfoWorld. [21 September 2015]. (原始內容存檔於21 September 2015).
- ^ Quang, Tran Nam. DocFetcher - Fast Document Search. docfetcher.sourceforge.net. [2016-11-29]. (原始內容存檔於2021-01-13).
- ^ Elasticsearch: RESTful, Distributed Search & Analytics - Elastic. elastic.co. [23 September 2015]. (原始內容存檔於2015-09-21).
- ^ 19.0 19.1 Natividad, Angela. Socialtext Updates Search, Goes Kino. CMS Wire. [2011-05-31]. (原始內容存檔於2012-09-29).
- ^ Marvin Humphrey. KinoSearch - Search engine library. - metacpan.org. p3rl.org. [23 September 2015].
- ^ Diment, Kieren; Trout, Matt S. Catalyst Cookbook. The Definitive Guide to Catalyst . Apress. 2009: 280. ISBN 978-1-4302-2365-8.
- ^ Wishart, D. S.; et al. HMDB: a knowledgebase for the human metabolome. Nucleic Acids Res. January 2009, 37 (Database issue): D603–10. PMC 2686599 . PMID 18953024. doi:10.1093/nar/gkn810.
- ^ Lim, Emilia; Pon, Allison; Djoumbou, Yannick; Knox, Craig; Shrivastava, Savita; Guo, An Chi; Neveu, Vanessa; Wishart, David S. T3DB: a comprehensively annotated database of common toxins and their targets. Nucleic Acids Res. January 2010, 38 (Database issue): D781–6. PMC 2808899 . PMID 19897546. doi:10.1093/nar/gkp934.
- ^ Swiftype - Site search and enterprise search. Swiftype. [2016-11-29]. (原始內容存檔於2021-02-05).
- ^ Apache Lucene.Net. lucenenet.apache.org. [2016-11-29]. (原始內容存檔於2020-12-31).
- ^ Apache Lucy. lucy.apache.org. [2016-11-29]. (原始內容存檔於2020-12-31).
- ^ luke. GitHub. [2016-11-29]. (原始內容存檔於2020-11-30).
外部連結
- Lucene homepage (頁面存檔備份,存於互聯網檔案館)
- Article "Behind the Scenes of the SourceForge.net Search System" by Chris Conrad
- Schmidt, Marco. Lucene Wikipedia indexer. 2005 [2021-02-07]. (原始內容存檔於2006-07-15).
Introductory article with Java code for search
- Simple Lucene Examples
- Apache Lucene popular APIs (頁面存檔備份,存於互聯網檔案館) in GitHub