我正在努力建立一个满足条件> = avg的ES查询。
这是一个例子:
GET /_search
{
"size" : 0,
"query" : {
"filtered": {
"filter": {
"range": {
"price": {
"gte": {
"aggs" : {
"single_avg_price": {
"avg" :{
"field" : "price"
}
}
}
}
}
}
}
}
}
}
我收到以下错误
"type": "query_parsing_exception",
"reason": "[range] query does not support [aggs]",
我想知道我们如何在Elastic查询中将聚合值与范围查询一起使用
最佳答案
您不能将聚合嵌入查询中。您首先需要发送聚合查询以找出平均值,然后使用获得的平均值发送第二个范围查询。
查询1:
POST /_search
{
"size": 0,
"aggs": {
"single_avg_price": {
"avg": {
"field": "price"
}
}
}
}
然后,您得到平均价格,说它是
12.3
,并在第二个查询中使用它,如下所示:查询2:
POST /_search
{
"size": 10,
"query": {
"filtered": {
"filter": {
"range": {
"price": {
"gte": 12.3
}
}
}
}
}
}
关于elasticsearch - 具有范围查询的 Elasticsearch 聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36019873/