Elasticsearch的入門學習和概念學習

elasticsearch學習

1.ES是 什麼?

es是一個基於Lucene的搜索服務器,是一個基於分佈式多用戶能力的全文搜索引擎,基於restful web接口。

大白話:是一個分佈式、高性能、高可用、可伸縮的搜索和分析系統。

2.ES的功能?
  • 此種場景不支持包含頻繁更新、事務(transaction)的操作。

a.分佈式的搜索引擎和數據分析引擎

b.全文檢索,結構化檢索,數據分析

c.對海量數據進行近實時的處理。

d.elasticsearch作爲傳統數據庫的一個補充,比如全文檢索,同義詞處理,相關度排名(如熱度),複雜數據分析。

  • 簡單點來說就是:

    查詢快並且可以複雜模糊查詢等 , 數據分析, 速度快, 可擴展性, 靈活性。

3.ES和我們常用的數據庫有什麼不同呢?

1.響應時間非常快(PB級數據是毫秒反應)

  • 在大數據相似的計算與查找或簡單計算時,es的分佈式並行計算有絕對優勢。
  • 在某一個唯一的值(如:用會員id找會員)這是用mysql好一點。

2.分詞(倒排索引)

  • 倒排索引建立的是分詞(Trem)和文檔(Document)之間的映射關係,在倒排索引中,數據是面向詞的(Term)而不是面向文檔的。

img

  • 倒排索引-----查詢過程

查詢包含“搜索引擎”的文檔

1.通過倒排序獲得“搜索引擎”對應的文檔id列表,有1,3

2.通過正排序索引查詢1和3的完整內容。

3.返回做種結果。

4.遍歷方式

  • ES有分片的概念,一個大的索引會被分成多個分片進行存儲數據,使用分佈式的架構對分片進行並行搜索(基於倒排)
  • 傳統數據庫遍歷,屬於正向全表掃描。

ES沒有事務的概念,不支持回滾,無法恢復刪除數據。

Relational DB -> Databases -> Tables -> Rows -> Columns
關係型數據庫 數據庫 表 行 列 Elasticsearch -> Indices -> Types -> Documents -> Fields
Elasticsearch 索引(indexName) 類型 (type) 文檔 域(字段)

img

4.ES的使用場景?

1.記錄和日誌分析

Logstash是一個開源的服務器端數據處理管道,支持各種輸入選擇,可以在同一時間從多常用來源捕捉事件,可以同時從多個數據源獲取數據,並對其進行轉換,發到我們常用ES中。

2.採集和組合公共數據

與日誌數據一樣,Elastic Stack擁有大象工具,可以輕鬆抓取和索引遠程數據。

3.全文檢索

4.事件數據和指標

ES可以很好的處理時間序列數據,如指標和應用程序事件。

5.數據可視化

elasticsearch都有常用查詢。

  • matchQuery(null,null)基本匹配查詢(分詞查詢) 不支持通配符,
  • multiQuery多個document field查詢,
  • FuzzyQuery模糊查詢
  • boolQuery組合查詢,and , not ,or 。
  • termQuery 精確查詢 (一個參數是,完全匹配),(多個參數,是批量匹配)
  • boostingQuery
  • functionScoreQuery 權重分查詢
  • spanNearQuery跨度查詢
  • nestedQuery嵌套查詢
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章