Elasticsearch索引中有3种类型:type1,type2,type3。 我需要按类型过滤(默认过滤值= type1)。但我也需要获得类型聚合。 但这是不可能的,因为在每个查询中我使用过滤器,并且只有过滤类型的对象。 请帮我弄清楚怎么做。是否只有使用第二个查询而没有过滤器的方法?
答案 0 :(得分:0)
它似乎是post-filter
的用例post_filter应用于搜索结果的最后一个 搜索请求,已经计算了聚合。
{
"query": {
"match_all": {}
},
"aggs": {
"typeAggr": {
"terms": { "field": "type" }
}
},
"post_filter": {
"term": { "type": "type1" }
}
}
此查询将列出文档匹配过滤器(type1),而汇总将提供结果,而不考虑type
字段上的过滤器。