您快到了,只需要
events.id在聚合中添加过滤器即可,如下所示:
{ "query": { "nested": { "path": "events", "query": { "bool": { "filter": [ { "terms": { "events.id": [ 1, 2 ] } } ] } }, "inner_hits": {} } }, "aggs": { "events.name12": { "nested": { "path": "events" }, "aggs": { "inner": { "filter": { "terms": { "events.id": [ 1, 2 ] } }, "aggs": { "events.name": { "terms": { "field": "events.name" } }, "events.name_count": { "cardinality": { "field": "events.name" } } } } } } }, "size": 20, "_source": [ "email", "company_name", "events" ]}原因是您的查询将正确选择具有指定事件ID的嵌套事件的所有文档,但是,汇总将对所有选定文档中的所有嵌套事件进行处理。因此,您还需要从聚合中也没有正确ID的那些文档中过滤掉所有嵌套事件。



