概述
elaticsearch是一個分散式的搜尋引擎,它可以實現各種複雜的資料型別實現近實時的搜尋功能,無論是結構化還是非結構化的資料,都能使用elaticsearch儲存並且可以快速搜尋。elaticsearch廣泛應用於網站或者app的搜尋功能,以及儲存、分析日誌、機器學習模型訓練,儲存分析複雜的資料型別如空間地理資訊等。
基本概念
索引 (index)
索引是文件的集合,一個叢集中可以有任意多個索引
叢集(cluster)
叢集中包含多個節點,一個叢集由一個唯一的名字標識,預設為“elasticsearch"
文件(document)
-
elaticsearch是面向文件的,文件是所有可搜尋資料的最小單位。
-
elaticsearch中儲存的文件都是JSON格式,JSON物件由各個欄位組成,每個欄位都有相應的欄位型別,如字串,數值,布林,日期等。
-
每個文件都有唯一的id作為區分,可以指定id也可以由elaticsearch自動生成。
JSON物件中的欄位可以指定資料型別或者通過elaticsearch自動推算,可以理解為一個文件類似與資料庫中的一條記錄。
分片 (shard)
在分散式系統中,單機無法儲存規模巨大的資料,通常需要靠大規模的叢集處理和儲存這些資料。一般通過增加機器數量來提高系統水平擴充套件的能力,因此需要將資料分成若干小塊分配到各個機器上。除了將資料分片提高水平擴充套件能力,分散式系統中還會將資料複製成多個副本,儲存在不同的機器上,提高了系統的可用性。ES將資料副本分為主從兩部分:主分片(primary shard)和從分片(replica shard)