Lucene相關

Lucene簡介

全Java實現、開源、高性能、功能完整、易拓展,功能完整體現在對分詞的支持、各種查詢方式(前綴、模糊、正則等)、打分高亮、列式存儲(DocValues)等等。 

基於Lucene的Solr和ElasticSearch分佈式檢索分析系統也發展如火如荼

 

簡單地說:Lucene是基於倒排表、FST數據結構字典、正向文件、列式存儲DocValues

其中,數據結構字典還有hashmap、B+樹,不過性能沒有fst好

FST全程是Finite State Transducers,是一個帶輸出的有限狀態機

 

Q:有數據庫爲什麼還要用solr?

嚴格來說,lucene負責數據存儲,而solr只是一個引擎提供搜索和插入而已,跟數據庫的解釋器一樣,有什麼好處呢,比如一個數據庫有一個字段存了1000個字,你想從這些字裏面搜一個詞的時候,普通的數據庫只會讓你使用like去查詢,他會遍歷每個字去模糊匹配,效率很低,而且有些是無法查詢的,當然除了像一些特殊的數據庫帶有分詞,比如postgresql,那lucene做的事情就是分詞,然後去匹配分詞的詞中是否有你想搜的詞就好了,當然了,爲了提高這種檢索效率和內存節省底層做了很複雜的事情,可以這麼簡單的認爲,全文搜索這件事情上數據庫是無法滿足的

 

Q:lucene、solr區別

Solr與Lucene 並不是競爭對立關係,恰恰相反Solr 依存於Lucene,因爲Solr底層的核心技術是使用Lucene 來實現的,Solr和Lucene的本質區別有以下三點:搜索服務器,企業級和管理。Lucene本質上是搜索庫,不是獨立的應用程序,而Solr是。Lucene專注於搜索底層的建設,而Solr專注於企業應用。Lucene不負責支撐搜索服務所必須的管理,而Solr負責。所以說,一句話概括:Solr是Lucene面向企業搜索應用的擴展。

 

參考鏈接:

https://blog.csdn.net/njpjsoftdev/article/details/54015485  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章