ElasticSearch在基数查询中查找总长度

时间:2016-11-07 19:18:25

标签: elasticsearch cardinality sense

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

例如,

作者:" Williams" 长度:100

作者"克林特" 长度:200

作者"罗恩" 长度:100

作者:" Williams" 长度:200

我期待着独特的作者2,总长度为300.

我尝试过以下代码;

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

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

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

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我想你可以试试这个:

"aggs": {
  "2": {
    "terms": {
      "field": "author",
      "size": 5,
      "order": {
        "1": "desc"
      }
    },
    "aggs": {
      "1": {
        "sum": {
          "field": "length"
        }
      }
    }
  }
}