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介面
上手容易,拓展節點方便,可用於儲存和檢索海量資料,接近實時搜尋,海量資料量增加,搜尋響應效能幾乎不受影響;
分散式搜尋框架,自動發現節點,副本機制,保障可用性