自2.x以来,弹性搜索禁用了文档中的路由字段。
由于这个原因,通过HTTP调用指定路由参数变得非常困难,特别是当这样做的代码嵌入到第三方库中时,例如elasticsearch-hadoop插件(参见CommonsHttpTransport.execute()例如。)
我看到一些旧帖子谈论通过插件覆盖“路由”参数(请参阅github/elasticsearch-direct-routing-plugin和hashing-algo-for-routing帖子)。
但我无法在弹性搜索代码中的任何位置搜索 cluster.routing.operation.hash.type 设置。
有人知道最新版本的ES是否支持上述选项,或者最新版本的elastic-search是否支持覆盖除URL-param之外的路由?
我想完全禁用路由,这样无论哪个节点接收到一批文件,都应该只是在那里同化而不分发给任何其他主分片(其自身的副本允许偏离当然)。这将极大地改善我们从风暴到弹性搜索的摄取,其中ES螺栓的数量远远超过ES主要碎片的数量,并且这些螺栓在所有初级中平均分配负载。
我们永远不会按ID搜索。