【问题标题】:Elasticsearch, sum of size of arrays in documentsElasticsearch,文档中数组大小的总和
【发布时间】:2019-10-20 20:06:04
【问题描述】:

我是 Elasticsearch 的新手,我正在使用 Java High Level Rest Client。 我有里面有数组的文档,我想要索引中所有文档中特定字段的数组大小的总和,但我不知道该怎么做。 我的文件示例: { 名称:'abc', 姓氏:'def', 书籍:[ { firstBook },{secondBook},{thirdBook} ] } 我需要所有文档中“书籍”字段的总和。

【问题讨论】:

    标签: java elasticsearch


    【解决方案1】:

    您可以为此使用scripted_metric 聚合

    查询:

    GET index31/_search
    {
      "size": 0, 
      "aggs": {
        "doc_length": {
          "scripted_metric": {
            "init_script": {
              "source": "state.commits = []"
            },
            "map_script": {
              "source": "state.commits.add(doc['books'].length)"
            },
            "combine_script": {
              "source": "def sum = 0.0; for (c in state.commits) { sum += c } return sum"
            },
            "reduce_script": {
              "source": "def sum = 0.0; for (a in states) { sum += a } return sum"
            }
          }
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-04
      • 2015-07-25
      • 2018-06-20
      • 1970-01-01
      • 2018-01-25
      • 2021-01-21
      • 2018-12-05
      相关资源
      最近更新 更多