Elastic Search成長之路【二】- es是什麼

 一、Elasticsearch 是什麼?

Elasticsearch是一個基於Lucene的搜索服務器。它提供了一個分佈式多用戶能力的全文搜索引擎,基於RESTful web接口。Elasticsearch是用Java語言開發的,並作爲Apache許可條款下的開放源碼發佈,是一種流行的企業級搜索引擎。Elasticsearch用於雲計算中,能夠達到實時搜索,穩定,可靠,快速,安裝使用方便。

二、Elasticsearch 的用途是什麼?

elasticsearch可在速度上和可拓展上表現出色,而且還能夠索引多種類型的內容。也就意味着他可以應用於很多場景實例:

以下是官方列舉的例子:

  • 應用程序搜索
  • 網站搜索
  • 企業搜索
  • 日誌處理和分析
  • 基礎設施指標和容器監測
  • 應用程序性能監測
  • 地理空間數據分析和可視化
  • 安全分析
  • 業務分析

三、Elasticsearch 常見的名詞說明

1、索引(index)

索引指相互關聯的文檔集合。文檔使用json形式存儲。每個文檔有個一些鍵和存儲的值對應。其實索引就相當於關係型數據庫中的一個數據庫;而上訴說到的鍵值,也就如表設計一樣了(此說法只能協助理解,實際還是有不少區別的 )。index是存在分片上的,具體分多少片就要自己配置了多少個分片了。

那問題來了,是不是分片越多也好呢。不是的。es搜索的時候會去每個分片搜索,最後把搜索的結果合併,而返回個客戶端。舉個例子:如果你需要搜索10個index,每個index有5個分片,那個協調這個搜索的節點就需要合併10*5個搜索結果;如果有太多的分片結果需要合併,或者請求一個結果巨大的請求,合併任務都需要消耗大量的cpu和內存資源。

2、mapping       

定義index下的字段,以及字段類型;

指定字段是否分詞,分詞器等;

mapping可以在創建索引的時候直接指定,或者創建索引後再配置mapping

3、type

首先說明的是在7.x版本開始,es剔除了這個東西;6.x默認只能是一個type。默認爲_doc。

使用 type 允許我們在一個 index 裏存儲多種類型的數據,這樣就可以減少 index 的數量。 再搜索文檔時,使用_type指定type可以過慮。但是在查詢一個type和多個type相比是沒有額外的開銷。多type是有限制性的:要求每個type中的字段儘可能相同,從而達到避免稀疏。多type不利於索引的壓縮存儲,這個應該也是es取消type的原因吧。

4、document

document作爲約定數據結構的存儲單位。index中存儲的元數據。角色和關係型數據中存儲的數據一致。

 

 

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