我正在尝试构建一个elasticsearch查询,该查询计算某个字段在特定范围内的文档数。这种聚合也包含在日期直方图聚合中,但我不认为这对于这个问题是重要的。
示例数据:
ID: Score
01: 4
02: 5
03: 10
04: 9
我想计算'得分'> = 9的文档数量。我在此聚合中尝试了脚本和过滤器,但我无法使其工作。
此聚合计算所有文档,而不仅仅是与脚本匹配的文档。
"aggs": {
"report_days": {
"date_histogram": {
"field": "Date",
"interval": "day"
},
"aggs": {
"value_count": {
"field": "Score",
"script": "_value >=9"
}
}
}
}
以下聚合给我一个解析失败,说Parse Failure [Expected [START_OBJECT] under [field], but got a [VALUE_STRING] in [value_count]]
:
"aggs": {
"report_days": {
"date_histogram": {
"field": "Date",
"interval": "day"
},
"aggs": {
"value_count": {
"field": "Score",
"filter": {
"range": {
"Score": {
"gte": 9
}
}
}
}
}
}
}
感谢您的任何建议!
答案 0 :(得分:0)
运行查询(“score:> 9”)并检查hits->总值。请参阅the doc中的示例。
答案 1 :(得分:0)
此查询将为您提供得分> = 9的文档数量
{
"query": {
"range": {
"score": {
"gte": 9
}
}
}
}
并且此agg将执行相同的操作
{
"aggs": {
"my agg": {
"range": {
"field": "score",
"ranges": [
{
"from": 9
}
]
}
}
}
}