【发布时间】:2016-04-27 01:53:51
【问题描述】:
我正在尝试对聚合数据运行后过滤器,但它没有按预期工作。有人可以查看我的查询并建议我是否在这里做错了什么。
"query" : {
"bool" : {
"must" : {
"range" : {
"versionDate" : {
"from" : null,
"to" : "2016-04-22T23:13:50.000Z",
"include_lower" : false,
"include_upper" : true
}
}
}
}
},
"aggregations" : {
"associations" : {
"terms" : {
"field" : "association.id",
"size" : 0,
"order" : {
"_term" : "asc"
}
},
"aggregations" : {
"top" : {
"top_hits" : {
"from" : 0,
"size" : 1,
"_source" : {
"includes" : [ ],
"excludes" : [ ]
},
"sort" : [ {
"versionDate" : {
"order" : "desc"
}
} ]
}
},
"disabledDate" : {
"filter" : {
"missing" : {
"field" : "disabledDate"
}
}
}
}
}
}
}
查询中的步骤:
- 按小于或等于给定日期的 indexDate 过滤。
- 基于 formId 聚合。根据 formId 形成存储桶。
- 按降序排序并返回每个桶的最高命中结果。
- 在排序子聚合之后运行子聚合过滤器,并从禁用日期不为空的存储桶中删除所有文档。(这不起作用)
【问题讨论】:
标签: elasticsearch