elasticsearch - 单个对象数组上的Elasticsearch聚合

标签 elasticsearch

我的查询搜索结果具有以下结构

[   
     {
        "_index" : "xxxx",
        "_type" : "status",
        "_id" : "01xxxxxxxxxxx",
        "_score" : 6.297049,
        "_source" : {
          "messageDetail" : {
            "errors" : [
              {
                "errorMessage" : ".metaData should have required property 'schemaVersion'"
              }
            ]
          }
        }
      },
      {
        "_index" : "xxxx",
        "_type" : "status",
        "_id" : "076XXXXxxx",
        "_score" : 6.297049,
        "_source" : {
          "messageDetail" : {
            "errors" : [
              {
                "errorMessage" : ".metaData should have required property 'scenarioName'"
              }
            ]
          }
        }
      },
...]
我想聚合messageDetail.errors.errorMessage并创建一个类似 map 的结构,该结构将在键值对中保存不同的错误消息及其发生的次数。
附言-messageDetail.error是单个对象的数组。
有人可以提供相同的任何查询吗?

最佳答案

添加一个包含索引数据(与所给问题的用法相同),索引映射,搜索查询和搜索结果的工作示例
索引映射:

{
  "mappings": {
    "properties": {
      "messageDetail": {
        "properties": {
          "errors": {
            "properties": {
              "errorMessage": {
                "type": "keyword"
              }
            }
          }
        }
      }
    }
  }
}
搜索查询
{
    "size": 0, 
    "aggs" : {
        "states" : {
            "terms" : { 
                "field" : "messageDetail.errors.errorMessage"
            }
        }
    }
}
搜索结果:
"aggregations": {
    "states": {
      "doc_count_error_upper_bound": 0,
      "sum_other_doc_count": 0,
      "buckets": [
        {
          "key": ".metaData should have required property 'scenarioName'",
          "doc_count": 1
        },
        {
          "key": ".metaData should have required property 'schemaVersion'",
          "doc_count": 1
        }
      ]
    }

关于elasticsearch - 单个对象数组上的Elasticsearch聚合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64228750/

相关文章:

c# - JSON 数据在反序列化期间未与 Dictionary 属性绑定(bind)

java - 如何使用 Gradle 导入库 "Symja"才能与 Elasticsearch 服务器模块一起使用?

search - Elasticsearch -优先选择完美匹配

elasticsearch - 如何为Kibana 5.6.3创建插件

elasticsearch - 配置logstash:多个输入

elasticsearch - 如何跨区域移动 Cloudwatch 日志?

mongodb - 在Elasticsearch中尝试将MongoDB文档作为单独的类型导入

java - Spring数据elasticsearch批量索引和删除

exception - elasticsearch搜索阶段执行

java - 启动 Elasticsearch 时无法加载 xerial snappy-java