Lucene是一個開源的全文檢索引擎工具包,最初由Doug Cutting開發。早在1997年,資深全文檢索專家 Doug Cutting用一個週末時間,使用Java語言創作了一個文本搜索的開源函數庫,目的是爲各種中小型應用軟件加入全文搜索功能,不久以後,Lucene誕生了,2000年Lucene稱爲Apache開源社區的一個子項目。隨着Lucene被人們熟知,越來越多的用戶和研發人員加入其中,完善並壯大項目的發展,Lucene已成爲最受歡迎的具有完整的查詢引擎和索引引擎的全文檢索庫。
Lucene從問世之後,引發了開源社區的巨大反響,程序員們不僅使用它構建全文檢索應用,而且將之集成到各種系統軟件中去,除此之外還用來構建Web應用。維基百科用Lucene建立了一個站內的強大搜索功能,用以檢索站內數以千萬的詞條。IBM的商業軟件Web Sphere也採用了Lucene作爲全文索引引擎。Lucene以其開放源代碼的特性、優異的索引結構、良好的系統架構獲得了越來越多的應用。Lucene的優點主要有以下3點:
1.穩定,索引性能高
現在硬盤上每小時能夠索引150GB以上的數據。
對內存的要求小,只需要1MB的對內存。
增量索引和批量索引一樣快
索引的大小約爲索引文本大小的20%~30%。
2.高效、準確、高性能的搜索算法
搜索排名———最好的結果顯示在最前面。
許多強大的查詢類型:短語查詢,通配符查詢,近似查詢、範圍查詢等。
對字段級別搜索(如標題,作者,內容)。
可以對任意字段排序。
支持搜索多個索引併合並索引結果
支持更新操作和查詢操作同時進行
靈活等切面、高亮、join和group by功能。
速度快,內存效率高,容錯性好。
可選排序模型,包括向量空間模型和BM2,5模型。
可配置存儲引擎。
3.跨平臺解決方案
作爲Apache開源許可,在商業軟件和開放程序中都可以使用Lucene。
100%純Java編寫。
對多種語言提供接口。