分片(shard)是底层的基本读写单元,分片的目的是分割巨大索引,让读写可以并行操作。由多台机器共同完成,读写请求最终落到某个分片上,分片可以独立执行读写工作。
如(ES)利用分片将数据分到集群内各处,分片是数据的容器,文档保存在分片内,不会跨分片存储,分片又被分配到集群内到各节点里,当集群规模扩大或缩小时,ES 会自动在各节点中迁移分片,使数据仍然均匀分布在集群里。
一个ES索引包括很多分片,一个分片是一个Lucene的索引,它本身是一个完整的搜索引擎,可以独立执行索和搜索任务。
Lucene索引由多个分段组成,每个分段都是一个倒排索引。ES每次“refresh” 都会生成一个新的分段,分段内包含文档数据。