天天看點

Lucene|學習筆記

開發者學堂課程【Java 面試疑難點串講 3:開發工具及架構: Lucene】學習筆記,與課程緊密聯系,讓使用者快速學習知識。

課程位址:

https://developer.aliyun.com/learning/course/26/detail/554

 Lucene

一個全文檢索開發架構,它的主要的功能是提高檢索性能,例如:在實際的網際網路開發項目裡面,如果現在要進行某些關鍵字的搜尋,那麼一定希望可以盡快的給出結論來了,而這樣的搜尋是不可能使用資料庫來實作的,因為唯一可以用的方式就使用 LIKE 子句,而這種語句需要逐行掃描,是以性能是最差的。

于是在 2005 年的時候 Apache 推出 lucene 開發架構,這個開發架構本身設計很好,但是有一個問題出現了,就是中文不好(原因是沒有中文分詞器)。

 分詞器的概念非常好了解,例如:現在你需要搜尋“中華人民共和國”,這個時候如果有了中文分詞器,它會自動的進行文字的拆分,以上的内容可以拆分為:中華 人民 共和國 中華共和國 人民共和國 中國 民工 華人。如果沒有中文分詞器,這個的實作是不可能的,是以當時國内出現了一些國人的分詞器,例如:庖丁解牛 .jar,但是它所支援的版本應該也就到 Lucene2.3 版本,後面新版本就不支援了。

 對于 Lucene 如果要有更好的中文分詞器(适合于新版本),那麼就可以一直使用下去,該搜尋主要是基于檔案的模式完成的,在我們的檔案裡面會設定一系列的搜尋的索引庫,它是通過索引庫進行的快速檢索實作。