1. 程式人生 > >elasticsearch搜尋引擎知識介紹和相關框架

elasticsearch搜尋引擎知識介紹和相關框架

簡介:介紹搜尋的基本概念,市面上主流的搜尋框架elasticSearch和solr等對比

         什麼是搜尋:在海量資訊中獲取我們想要的資訊

         傳統做法:

                   1、文件中使用系統的Find查詢

                   2、mysql中使用like模糊查詢

         問題:

                   1、海量資料中不能及時響應,少量資料可以通過傳統的MySql建立索引解決

                   2、一些無用詞不能進行過濾,沒法分詞

                   3、資料量大的話難以拓展

                   4、相同的資料難以進行相似度最高的進行排序

         搜尋引擎:

                   1、儲存非結構化的資料

                   2、快速檢索和響應我們需要的資訊,快-準

                   3、進行相關性的排序,過濾等

                   4、可以去掉停用詞(沒有特殊含義的詞,比如英文的a,is等,中文: 這,的,是等),框架一般支援可以自定義停用詞

常用框架:

                   1、Lucene

                            Apache下面的一個開源專案,高效能的、可擴充套件的工具庫,提供搜尋的基本架構;

                            如果開發人員需用使用的話,需用自己進行開發,成本比較大,但是效能高

 

                   2、solr

                            Solr基於Lucene的全文搜尋框架,提供了比Lucene更為豐富的功能,

                            同時實現了可配置、可擴充套件並對查詢效能進行了優化

                            建立索引時,搜尋效率下降,實時索引搜尋效率不高

                            資料量的增加,Solr的搜尋效率會變得更低,適合小的搜尋應用,對應java客戶端的是solrj

 

 

                   3、elasticSearch

                            基於Lucene的搜尋框架, 它提供了一個分散式多使用者能力的全文搜尋引擎,基於RESTful web介面

                            上手容易,拓展節點方便,可用於儲存和檢索海量資料,接近實時搜尋,海量資料量增加,搜尋響應效能幾乎不受影響;

                            分散式搜尋框架,自動發現節點,副本機制,保障可用性