用於全文檢索和搜尋的開源專案Apache Lucene,開發團隊釋出最新的9.0版本,這個版本的更新重點之一,便是大幅度的效能提升,無論是分面式分類(Taxonomy Faceting)還是排序演算法,速度都有數倍的提升。

Apache Lucene是一個高效能且全功能的搜尋引擎函式庫,以程式語言Java開發而成,幾乎適用於所有結構搜尋、全文檢索、分面、跨高維向量最鄰近搜尋,也可用於拼寫校正或是查詢建議等使用情境。Apache Lucene同時也是Elasticsearch和MongoDB Atlas應用程式和服務的基礎。

這個版本加入的新功能,開發團隊藉由使用HNSW(Hierarchical Navigable Small World)圖演算法,對高維數值向量提供了最鄰近搜尋法。同時還強化了對多語言的支援,包括加入新的塞爾維亞語、尼泊爾語和泰米爾語的分析器,並且對日語提供IME友善的自動提示,在Snowball 2分析器提供印地語、印尼語、塞爾維亞語、泰米爾語和意第緒語等詞幹分析。

Apache Lucene 9.0在效能上,更是有顯著的提升,像是分面式分類法的速度提升至400%,多維度點索引則快10%到15%。而且點索引的欄位排序速度也提升了數倍,官方解釋,該最佳化在8.x後期版本,就開始提供用戶選擇性啟用,但從9.0開始預設啟用,但用戶也可以選擇停用。

開發團隊重新調整ConcurrentMergeScheduler設定,透過假設系統使用現代高速I/O,來提高索引效能,能夠避免過去系統以啟發式方法,錯誤偵測系統使用I/O所產生的問題。另外,發布列表的編碼,從FOR-delta變更為PFOR-delta,能夠更節省磁碟空間。

而在Apache Lucene 9.0中,不再有拆分的套件,但這項調整需要重新命名Lucene核心JAR外的一些套件,因此用戶可能需要對匯入進行一些相對應調整,另外,值得注意的是,用戶要在Apache Lucene 9.0中使用模組系統,要將其假設為試驗性階段,官方提到,在9.x版本將會有更多的改進。


熱門新聞

Advertisement