如何在ElasticSearch中聚合嵌套文档的大小?

kfgdxczn  于 2022-11-02  发布在  ElasticSearch
关注(0)|答案(1)|浏览(260)

嵌套字段名称为transactions。
每个单据都有一个事务处理列表。
我想合计交易的数目。我所寻求的资料是有多于一项交易的文件数目。
我尝试了以下方法:

"aggs": {
    "tx_count": {
      "terms": {
        "script": {
          "inline": "if(doc['transactions'].size>1){return 1;} else {return 0;}"
        }
      }
    }
  }

我还尝试在嵌套聚合中使用此聚合。是否有办法做到这一点?
我目前使用的是ES版本5.6。

vngu2lb8

vngu2lb81#

您可以使用params._source来计算transactions长度:

{
  "size": 0,
  "aggs": {
    "tx_count": {
      "terms": {
        "script": {
          "inline": "if (params._source['transactions'].size() > 1) { return 1; } else { return 0; }"
        }
      }
    }
  }
}
  • 顺便说一句,注意它是.size(),而不是.size。*

相关问题