gpt4 book ai didi

elasticsearch - 使用NaN值对百分位数聚合排序

转载 作者:行者123 更新时间:2023-12-02 23:56:36 25 4
gpt4 key购买 nike

我正在使用ElasticSearch 2.3.3,并且具有以下聚合:

"aggregations": {
"mainBreakdown": {
"terms": {
"field": "location_i",
"size": 10,
"order": [
{
"comments>medianTime.50": "asc"
}
]
},
"aggregations": {
"comments": {
"filter": {
"term": {
"type_i": 120
}
},
"aggregations": {
"medianTime": {
"percentiles": {
"field": "time_l",
"percents": [
50.0
]
}
}
}
}
}
}
}

为了更好地理解,我在字段名称中添加了一个后缀,用于说明字段映射:
  • _i =整数
  • _l = long(时间戳)

  • 聚合响应为:
    "aggregations": {
    "mainBreakdown": {
    "doc_count_error_upper_bound": 0,
    "sum_other_doc_count": 0,
    "buckets": [
    {
    "key": 100,
    "doc_count": 2,
    "comments": {
    "doc_count": 1,
    "medianTime": {
    "values": {
    "50.0": 20113
    }
    }
    }
    },
    {
    "key": 121,
    "doc_count": 14,
    "comments": {
    "doc_count": 0,
    "medianTime": {
    "values": {
    "50.0": "NaN"
    }
    }
    }
    }
    ]
    }
    }

    我的问题是 medianTime聚合有时具有 NaN的值,因为父聚合 comments具有0个匹配的文档,然后 NaN的结果将始终同时位于“asc”和“desc”顺序上。
    我尝试在 "missing": 0聚合中添加 percentiles,但它仍返回 NaN

    您能帮我按中值时间对存储分区进行排序吗?当它是“asc”时, NaN值将是第一个,而当它的“desc”值将是最后一个?

    最佳答案

    NaN不是数字,因此它们将始终排在最后。
    在对elasticsearch github进行简短讨论之后,我们决定了处理NaN的适当方法。
    https://github.com/elastic/elasticsearch/issues/36402

    关于elasticsearch - 使用NaN值对百分位数聚合排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52735354/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com