我们目前正在优化Elasticsearch索引的分片设置,以(意外)减少响应时间。目前,路由密钥的数量等于碎片的数量。我们正在寻找一个设置,其中分片中的所有文档都只有一个路由密钥。Elasticsearch路由:只有每个分片具有一个路由键的文档
这是怎么回事,此刻,它看起来应该像
当前
- 碎片:0 - >路线:小轮车,cyclocrosser
- 碎片:1 - >路线:轨道自行车
- 碎片:2 - >路线:
- 碎片:3 - >路线:下坡
求购
- 碎片:0 - >路线:BMX
- 碎片:1 - >路线:轨道自行车
- 碎片:2 - >路线:cyclocrosser
- 碎片: 3 - >路线:下坡
是否有任何可能确定,一个路由键将是路由只有一个碎片?目前我们是面对空的碎片,这似乎不是一个合适的解决方案。
我们知道路由基于版本5.50中的Murmur(请参阅:Murmur3HashFunction.java)。有没有任何选择来影响这种行为,并且有人可以提供更深入的见解,以及路由如何在内部工作。
内置路由已经实现文档在所有分片上的平均分配。如果每个路由值的文档数量相同,则基于特定值的自定义路由只能实现相同的功能。 – Val
该文件或多或少均匀分布在路由密钥上。这就是为什么要将一个路由密钥“分配”到一个分片的原因。 –
您确定您的一组路由密钥是永久稳定的吗?例如,如果由于某种原因需要在某个时候需要新的路由密钥,会发生什么情况? – Val