我很有兴趣进行子聚合,但对于特定的关键字值。
"aggregations" : {
"Keyword" : {
"terms" : {
"field" : "keyword"
},
"aggregations" : {
"Concept" : {
"terms" : {
"field" : "concept"
}
}
以下仅返回前10位,不需要包含我感兴趣的值。
我认为有两种主要方法可以解决我的问题:
绩效方面的最佳解决方案是什么?
答案 0 :(得分:0)
因此,如果我对10个关键字/值感兴趣,我将执行10次过滤器聚合。
这不一定是真的。
您可以创建一个过滤器来消除不需要的关键字,您可以在查询阶段预先执行此操作:
{
"size" : 0,
"query" : {
"bool" : {
"filter" : [
{
"terms" : {
"keyword" : [ "abc", "def", "ghi" ]
}
}
]
}
},
"aggs" : {
"Keyword" : {
"terms" : {
"field" : "keyword"
},
"aggs" : {
"Concept" : {
"terms" : {
"field" : "concept"
}
}
}
}
}
}
查询阶段会将其过滤为abc
,def
和ghi
。然后聚合将按预期工作,但仅针对具有这些值的文档。