我设置了以下别名:
"items": {
"aliases": {
"items_0": {
"filter": {
"term": {
"accountid": "0"
}
},
"index_routing": "0",
"search_routing": "0"
}
}
}
当我在accountid = 0的项目索引中搜索文档时,会返回该文档。然而,当我使用items_0的索引搜索文档时,它不会被返回。我使用完全相同的搜索条件,只是将索引名称从items更改为items_0。我在这里错过了什么吗?
答案 0 :(得分:1)
很可能您没有使用与您在别名中指定的值相同的_routing
索引文档。
例如,对于这些文档(指定了_routing
):
POST /items/test/_bulk
{"index":{"_id":1,"_routing":0}}
{"accountid": 0}
{"index":{"_id":2,"_routing":0}}
{"accountid": 0}
{"index":{"_id":3,"_routing":0}}
{"accountid": 5}
{"index":{"_id":4,"_routing":0}}
{"accountid": 3}
运行
GET /items_0/_search
{
"query": {
"filtered": {
"filter": {
"term": {
"accountid": 0
}
}
}
}
}
返回正确的结果。因此,您需要确保使用别名中使用的_routing
ID索引文档。