简介

予早 2025-10-07 00:23:57
Categories: Tags:

Elasticsearch 是一个分布式搜索引擎。

基本概念

https://www.elastic.co/docs/manage-data/data-store/near-real-time-search

集群,cluster

节点,node

索引,index

索引是文档集合,索引具有 mapping 和 setting,mapping 定义 index 中 document 类型,setting 用来定义数据分片信息。

分片,shard

分片分为主分片(primary shard)和副本分片(replica shard)。分片设计有利于:

  1. 高可用:当分片或节点故障时,副本可以继续提供服务。副本分片永远不会与其对应的主分片分配到同一个节点上。
  2. 横向扩展查询吞吐量:搜索操作可以在所有主/副分片上并行执行,从而提升整体查询并发能力。
  3. 横向扩展存储数据量:写操作的数据会被存储在多个主分片上,主分片可以分散在各个节点,从而提升单个索引数据存储能力。

每个索引可以被拆分为多个分片(主分片),该索引可以有零个或者多个副本。分片数和副本数只能在索引创建时指定,索引创建后,分片数无法动态调整,只能 reindex,副本数可以动态调整。默认情况下,每个索引会被设置 5 个分片和 1 个副本,共计 10 个分片,其中 5个 主分片,5 个副本分片(一个完整副本)。

一般建议:单个分片建议为30GB到50GB。ElasticSearch推荐的最大JVM堆空间是30~32G, 所以把你的分片最大容量限制为30GB, 然后再对分片数量做合理估算. 例如, 你认为你的数据能达到200GB, 我们推荐你最多分配7到8个分片.

类型,type

type 为 index 中相同 document 的类型。

文档,document

document 在elasticsearch 中以 JSON 的格式存在,document 由若干字段构成,字段与MySQL中列概念类似。