Elaticsearch基礎概念

Sierra、發表於2021-09-18
概述

elaticsearch是一個分散式的搜尋引擎,它可以實現各種複雜的資料型別實現近實時的搜尋功能,無論是結構化還是非結構化的資料,都能使用elaticsearch儲存並且可以快速搜尋。elaticsearch廣泛應用於網站或者app的搜尋功能,以及儲存、分析日誌、機器學習模型訓練,儲存分析複雜的資料型別如空間地理資訊等。

基本概念
索引 (index)

索引是文件的集合,一個叢集中可以有任意多個索引

叢集(cluster)

叢集中包含多個節點,一個叢集由一個唯一的名字標識,預設為“elasticsearch"

文件(document)
  • elaticsearch是面向文件的,文件是所有可搜尋資料的最小單位。

  • elaticsearch中儲存的文件都是JSON格式,JSON物件由各個欄位組成,每個欄位都有相應的欄位型別,如字串,數值,布林,日期等。

  • 每個文件都有唯一的id作為區分,可以指定id也可以由elaticsearch自動生成。

JSON物件中的欄位可以指定資料型別或者通過elaticsearch自動推算,可以理解為一個文件類似與資料庫中的一條記錄。

分片 (shard)

在分散式系統中,單機無法儲存規模巨大的資料,通常需要靠大規模的叢集處理和儲存這些資料。一般通過增加機器數量來提高系統水平擴充套件的能力,因此需要將資料分成若干小塊分配到各個機器上。除了將資料分片提高水平擴充套件能力,分散式系統中還會將資料複製成多個副本,儲存在不同的機器上,提高了系統的可用性。ES將資料副本分為主從兩部分:主分片(primary shard)和從分片(replica shard)