这是我的ES有效载荷:
{
"filtered": {
"filter": {
"and": {
"filters": [
{
"status": [
"error",
"active",
"opt_out"
]
},
{
"group_ids": [
"UUIDs-go-here"
]
}
]
}
}
},
"aggs": {
"status_count": {
"terms": {
"field": "status"
}
}
}
}
我收到的错误是Parse Failure [No parser for element [filtered]]];
我正在关注此https://www.elastic.co/guide/en/elasticsearch/reference/current/query-dsl-and-filter.html以帮助构建我的过滤器,但显然我做错了什么
答案 0 :(得分:1)
请改为尝试:
{
"query": {
"filtered": {
"filter": {
"and": {
"filters": [
{
"terms": {
"status": [
"error",
"active",
"opt_out"
]
}
},
{
"terms": {
"group_ids": [
"UUIDs-go-here"
]
}
}
]
}
}
}
},
"aggs": {
"status_count": {
"terms": {
"field": "status"
}
}
}
}
将整个filtered query
包含在查询语法中,因为filtered
是一种查询而不是查询本身。然后,在and filters
中,您还需要指定正在运行的类型和过滤器,因为status
不是一种过滤器。我在此假设您正在寻找字段上的terms
过滤器。