gpt4 book ai didi

elasticsearch - 在Elasticsearch中汇总数据后的唯一键

转载 作者:行者123 更新时间:2023-12-02 22:30:53 24 4
gpt4 key购买 nike

我的索引中有以下文件。

{"id":"1","Ref":192,"valueId":596,"locationId":45}
{"id":"21","Ref":192,"valueId":596,"locationId":323}
{"id":"31","Ref":192,"valueId":5596,"locationId":5435}
{"id":"41","Ref":192,"valueId":5596,"locationId":535}
{"id":"51","Ref":192,"valueId":5996,"locationId":78}
{"id":"61","Ref":192,"valueId":5996,"locationId":6565}
{"id":"71","Ref":192,"valueId":5196,"locationId":868}
{"id":"81","Ref":192,"valueId":5296,"locationId":68687}
{"id":"91","Ref":192,"valueId":5296,"locationId":6836}
{"id":"101","Ref":192,"valueId":5296,"locationId":96}
{"id":"111","Ref":192,"valueId":5396,"locationId":56}

{"id":"121","Ref":576,"valueId":5396,"locationId":5}
{"id":"131","Ref":576,"valueId":5496,"locationId":8}
{"id":"141","Ref":576,"valueId":5496,"locationId":5356}
{"id":"151","Ref":576,"valueId":5496,"locationId":896}
{"id":"261","Ref":576,"valueId":5896,"locationId":99}
{"id":"271","Ref":576,"valueId":5896,"locationId":8589}
{"id":"671","Ref":576,"valueId":5896,"locationId":999}
{"id":"431","Ref":576,"valueId":5896,"locationId":3565868}
{"id":"241","Ref":576,"valueId":5896,"locationId":9998}

如何在 flex 搜索中构建一个查询(aggreagtions),使其返回结果,如下所示
{
"key" : 192, "Count" : 5,
"key" : 576, "Count" : 3
}

Count 5 for the key 192 implies number of distinct valueIds for the "Ref"= 192,
Count 3 for the key 576 implies number of distinct valueIds for the "Ref" =576

有人可以帮帮我吗..?
我只需要通过聚集。
谢谢

最佳答案

POST test/_search
{
"size": 0,
"aggs": {
"refs": {
"terms": {
"field": "Ref"
},
"aggs": {
"valueIdCount": {
"cardinality": {
"field": "valueId"
}
}
}
}
}
}

这应该可以解决问题(尽管JSON并不完全符合您的期望)。
  • 首先,我们使用常规的术语汇总将所有文档划分为存储桶。
  • 对于每个存储桶,我们使用基数聚合来找出我们在每个存储桶中找到多少个不同的valueId。

  • 结果如下(事实证明,键192有6个不同的valueId,而不是5):
    {
    [...]
    "aggregations": {
    "refs": {
    "doc_count_error_upper_bound": 0,
    "sum_other_doc_count": 0,
    "buckets": [
    {
    "key": 192,
    "doc_count": 11,
    "valueIdCount": {
    "value": 6
    }
    },
    {
    "key": 576,
    "doc_count": 9,
    "valueIdCount": {
    "value": 3
    }
    }
    ]
    }
    }
    }

    关于elasticsearch - 在Elasticsearch中汇总数据后的唯一键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39729727/

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