es:
下一篇:
内容
当你索引一个文档,它存储在其中一个主分片上,es如何知道哪个分片应该存储这个文档?当我们创建一个新的文档,es怎么知道它应该存在分片1还是2?处理不是随机的,因为我们将来还需要检索这个文档,事实上,由一个非常简单的公式计算。shard = hash(routing) % number_of_primary_shardsrouting值是一个字符串,默认是文档的_id,但是也可以是其它值这个解释了,为什么主分片的个数仅仅在索引创建时决定而不能再改变了如果改变了,所有的之前的值都无效,文档也找不到了。所有的文档API(get, index, delete, bulk, update and mget)接受一个路由参数,这个参数可以用来决定文档到分片的映射,后续的大数据会进一步讨论。