这里有一个ElasticSearch DSL查询,用于返回名为duration的字段的第90个百分位值(持续时间是以毫秒为单位的网络服务时间响应持续时间,但我们不在乎......)
{
"query": {
"match_all": {}
},
"aggs": {
"percentile90": {
"percentiles": {
"field": "duration",
"percents": [
90
]
}
}
}
}
我需要计算持续时间值大于第90个百分位持续时间值的文档数量。
答案 0 :(得分:0)
您要求的是类似于SQL中的HAVING子句。 ElasticSearch(2.X AFAIK)不支持此功能。你必须用两个请求来做。
答案 1 :(得分:0)
我需要计算持续时间的文件数量 值大于第90百分位持续时间值。
仅根据百分位数的定义,这不是文件总数的10%吗?这是假设持续时间是浮点数,因此可以预期是唯一的。
另一方面,如果你想计算一个花费超过90%的人的平均持续时间,你确实需要使用两个查询。