在创建由几位作者组成的书的索引时,但仅属于11种不同出版物的子集,我打算在单个节点上具有11个索引分片。
显然,我映射的路由部分看起来像
"book":{
"_routing":{
"required":true,
"path":"publication"
},....
publication
本身是一个字符串,可以是11种不同的类型。
在settings
我的映射的一部分看起来像
body: {
settings: {
index: {
number_of_shards: 11,
number_of_replicas: 1
}
},....
我面临的问题是,在查看and查询的结果后,不同的文档publication
已在同一索引中,shard
而某些分片却空着。books/_status
books/_segments
我调查了reroute
API,但显然应该寻找其他问题。
在指定路由后,这种文档的不平等分配使我routing
完全放弃了。
我一直使用的版本是0.90.5。
路由不会保证分片上的所有项目都具有相同的路由密钥,它将确保共享路由密钥的所有文档都在同一分片上。
从底部引用:
该分片几乎可以肯定具有除属于user123的那些文档以外的其他文档。路由确保具有特定路由值的文档全部都到达相同的分片……但这并不意味着其他文档也不会被路由至该分片。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句