《读书报告 -- Elasticsearch入门 》--简单使用(2)
《读书报告 – Elasticsearch入门 》 ' 第四章 分布式文件存储 这章的主要内容是理解数据如何在分布式系统中存储。 4.1 路由文档到分片 创建一个新文档时,它是如何确定应该存储在分片1还是分片2上的呢? 这个过程不是随机的,因为将来要检索文档。事实上,它根据一个简单的算法决定: shard = hash(routing) % number_of_primary_shards routing值是一个任意字符串,它默认是_id但也可以自定义。这个routing字符串通过哈希函数生成一个数字,然后除以主切片的数量得到一个余数(remainder),余数的范围永远是0到number_of_primary_shards - 1,这个数字就是特定文档所在的分片。 这也解释了为什么主分片的数量只能在创建索引时定义且不能修改:如果主分片的数量在未来改变了,所有先前的路由值就失效了,文档也就永远找不到了。 所有的文档API(get、index、delete、bulk、update、mget)都接收一个routing参数,它用来自定义文档到分片的映射。自定义路由值可以确保所有相关文档——例...