如何在elasticsearch中使用带有聚合函数的多个查询字符串? 例如:
if a>0 AND a<1, then {"low":count(aggregate count of records within 0 to 1)}
else if a > 1 AND a < 100, then {"normal":count(aggregate count of records within 1 to 100)}
else {"high":count(aggregate count of records after 100)}
如何使用Request Body Query字符串实现此目的? 提前谢谢。
答案 0 :(得分:0)
假设a
是您搜索的字段,我认为最简单的方法是对每个用例使用range aggregation和桶(低,正常,高)。
您无法将聚合绑定到查询条件。你必须自己做代码。但是如果你使用范围聚合,你可以定义你的桶,如
POST /_search
{
"aggs" : {
"a_ranges" : {
"range" : {
"field" : "a",
"ranges" : [
{ "to" : 1 },
{ "from" : 1, "to" : 10 },
{ "from" : 10 }
]
}
}
}
}
根据您的查询,其中两个存储桶将保持为空,但这可以为您提供所需的结果