我正在尝试在Elastic 2.X中创建一个过滤的索引别名
以下给我所有青少年,不分性别。我只想在这个过滤器中看到女性。
这就是我尝试创建索引别名:
"add" : {
"index" : "myindex",
"alias" : "teenage_female",
"filter" :
{
"bool" :
{
"must" :
[
{ "term": { "gender": "female" } },
{ "range": { "age": { "gt": "12", "lt": "20" } } }
]
}
}
}
}
我看过这个问题似乎是同样的答案,但我的JSON肯定有问题。
答案 0 :(得分:1)
过滤器不能是数组,除非它被包裹在" bool"与"必须"。
以下过滤器正常运行:
"filter" :
{
"bool" :
{
"must" :
[
{ "term": { "gender": "female" } },
{ "range": { "age": { "gt": "12", "lt": "20" } } }
]
}
}
答案 1 :(得分:0)
我在这里猜一点,但根据Filtered Index Aliases文档,添加别名请求适用于filter context(与查询上下文相对)
试试这个:
"add" : {
"index" : "myindex",
"alias" : "teenage_female",
"filter" : [
{ "term": { "gender": "female" } },
{ "range": { "age": { "gt": "12", "lt": "20" } } }
]
}