0

我正在使用 ElasticSearch 并试图找到所有独特的作者。以及所有唯一作者的总长度。

例如,

作者:《威廉姆斯》长度:100

作者“克林特”长度:200

作者“罗恩”长度:100

作者:《威廉姆斯》长度:200

我希望 Unique Authors 2 总长度为 300。

我尝试了以下代码;

"size": 0,
   "aggs": {
      "red_products": {
         "cardinality": {
            "field": "author"
         },
         "aggs": {
            "total": {
               "sum": {
                  "field": "length"
               }
            }
         }
      }
   }
}

但是我收到一条错误消息,指出 [cardinality] 类型的聚合器 [red_products] 不能接受子聚合。

我先尝试总长度,然后是唯一作者,它给了我正确的唯一作者,但给了我每本书的总长度。

有任何想法吗?

4

1 回答 1

0

我想你可以试试这个:

"aggs": {
  "2": {
    "terms": {
      "field": "author",
      "size": 5,
      "order": {
        "1": "desc"
      }
    },
    "aggs": {
      "1": {
        "sum": {
          "field": "length"
        }
      }
    }
  }
}
于 2017-06-14T07:09:29.947 回答