ElasticSearch6.2.4(11)——document创建的机制

1.document是怎么到shard上面去的呢?
路由算法:shard = hash(routing) % number_of_primary_shards
每次增删改查一个document的时候,都会带过来一个routing,默认就是这个document的_id(可能是手动指定,也可能是自动生成)
routing = _id,假设_id=1,如图
ElasticSearch6.2.4(11)——document创建的机制
决定一个document在哪个shard上,最重要的一个值就是routing值,默认是_id,也可以手动指定,相同的routing值,每次过来,从hash函数中,产出的hash值一定是相同的

2._id or custom routing value
默认的routing就是_id
也可以在发送请求的时候,手动指定一个routing value,比如说put /index/type/id?routing=user_id
手动指定routing value是很有用的,可以保证说,某一类document一定被路由到一个shard上去,那么在后续进行应用级别的负载均衡,以及提升批量读取的性能的时候,是很有帮助的


3.primary shard数量不可变的谜底

ElasticSearch6.2.4(11)——document创建的机制