gpt4 book ai didi

elasticsearch - 汇总中位数/平均值查询

转载 作者:行者123 更新时间:2023-12-02 23:44:52 28 4
gpt4 key购买 nike

我有一个索引,其类型可以简化为:

{
'date': DATE_STRING,
'owner': INT,
'color: 'red' | 'purple' | 'blue'
}

并且希望进行查询以显示以下数据,其中所有者的值等于他们拥有的“蓝色”项目总数减去所请求时间内“红色”的项目总数(唐不要问为什么):
  • 任何所有者的最小值(在请求的时间内)
  • 任何所有者的最大值(在请求的时间内)
  • 所有所有者的平均值(在请求的时间内)
  • 所有所有者的中值(在请求的时间内)
  • 特定所有者的值(在请求的时间内)
  • 最佳答案

    设置索引:

    PUT colorful
    {
    "mappings": {
    "properties": {
    "date": {
    "type": "date"
    },
    "owner": {
    "type": "integer"
    },
    "color": {
    "type": "keyword"
    }
    }
    }
    }

    插入一些文档
    POST colorful/_doc
    {"date":"2020-05-28T19:56:12.237Z","owner":131351351,"color":"red"}

    POST colorful/_doc
    {"date":"2020-04-28T19:58:02.110Z","owner":35135125,"color":"purple"}

    POST colorful/_doc
    {"date":"2020-05-15T19:58:15.966Z","owner":997654341,"color":"blue"}

    POST colorful/_doc
    {"date":"2020-05-21T19:58:35.766Z","owner":366449,"color":"red"}

    按日期范围和总计过滤。可以使用 stats来计算Min,Max,Avg(= Mean),对于 median则是 percentiles[50]。不确定 a particular owner's value是什么意思,但是可以使用 top_hits来获取实际的范围过滤文档,还可以为特定文档添加过滤器。
    GET colorful/_search
    {
    "size": 0,
    "query": {
    "range": {
    "date": {
    "gte": "now-3M",
    "lte": "now-1h"
    }
    }
    },
    "aggs": {
    "1)general_stats": {
    "stats": {
    "field": "owner"
    }
    },
    "2)median": {
    "percentiles": {
    "field": "owner",
    "percents": [
    50
    ]
    }
    },
    "3)top_hits": {
    "top_hits": {
    "size": 10
    }
    }
    }
    }

    关于elasticsearch - 汇总中位数/平均值查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62070326/

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