首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在elasticsearch中聚合数据后的唯一键

在elasticsearch中聚合数据后的唯一键
EN

Stack Overflow用户
提问于 2016-09-27 16:21:20
回答 2查看 56关注 0票数 2

我的书签上有下面的文件。

代码语言:javascript
运行
复制
{"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}

如何在弹性搜索中建立一个量化(集),使其返回如下结果

代码语言:javascript
运行
复制
{
    "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 

有人能帮帮我吗..?

我只需要通过集合。

谢谢

EN

Stack Overflow用户

回答已采纳

发布于 2016-09-27 19:12:50

代码语言:javascript
运行
复制
POST test/_search
{
   "size": 0,
   "aggs": {
      "refs": {
         "terms": {
            "field": "Ref"
         },
         "aggs": {
            "valueIdCount": {
               "cardinality": {
                  "field": "valueId"
               }
            }
         }
      }
   }
}

这应该能起作用(尽管JSON并不是您所期望的那样)。

  • 首先,我们使用定期术语聚合将所有文档划分为桶。
  • 对于每个桶,我们使用基数聚合来找出每个桶中有多少不同的valueIds。

结果如下(结果是,对于键192,我们有6个不同的valueIds,而不是5个):

代码语言:javascript
运行
复制
{
   [...]
   "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
               }
            }
         ]
      }
   }
}
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39729727

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档