Elasticseach使用路由对别名进行过滤搜索

时间:2018-10-08 08:14:41

标签: elasticsearch

我创建了2个索引,例如user_1和user_2,具有1个分片和1个副本,以及一个别名user_alias,它指向上述两个索引。

"actions" : [
    { "add" : { "index" : "user_1", "alias" : "user_indexing", "routing": "1"} },
    { "add" : { "index" : "user_2", "alias" : "user_indexing", "routing": "2"} }
]

使用路由键1在user_alias上进行_search时:

curl -H“内容类型:application / json” -XGET“ localhost:9200 / user_alias / _search?routing = 1&pretty”

我也收到_routing = 2的文档。这是预期的行为吗?

基本上,我想限制使用路由执行搜索查询的分片的数量。仅在这里,我使用了具有1个分片的多个索引,并使用路由在不同索引的分片之间进行选择。

1 个答案:

答案 0 :(得分:0)

在进一步调查中,我发现由于仅为索引配置了1个主分片,因此带有两个路由键的文档都位于同一分片上。而且由于路由键基本上会将您路由到文档所在的分片(可以与具有不同路由键的文档位于同一位置),因此我获得了该分片上的所有文档(即使用路由键1和2) )。

相关问题