【问题标题】:Terms failed to parse field size Error when aggregating with two terms in elastic search在弹性搜索中与两个术语聚合时,术语无法解析字段大小错误
【发布时间】:2019-01-05 20:53:42
【问题描述】:

我想汇总两个术语,用户和事件,并且我想获取每个用户的每个事件的计数。

我尝试了以下代码。但我在倒数第二行收到错误消息:

RequestError: TransportError(400, 'parsing_exception', '[terms] 无法解析字段 [size]')

你能告诉我如何解决这个问题吗?

es.search(index=['ind'],doc_type=['axis'],body={
"query": {
    "bool": {
        "must": [
            {
                "range": {
                    "time": {
                        "gt": "10"
                    }
                }
            }
        ]
    }
},
"from": 0,
"size": 0,
"aggregations": {
    "user": {
        "aggregations": {
            "event": {
                "aggregations": {
                    "COUNT(event)": {
                        "value_count": {
                            "field": "event"
                        }
                    }
                },
                "terms": {
                    "field": "event",
                    "size": 0
                }
            }
        },
        "terms": {
            "field": "user",
            "size": 200
        }
    }
}
})

【问题讨论】:

  • 请问你为什么需要一个有 0 个桶的桶聚合 (terms)?是不是就像根本不做任何聚合一样?

标签: elasticsearch elasticsearch-5 elasticsearch-2.0 elasticsearch-aggregation


【解决方案1】:

查询的唯一问题是聚合大小设置为“0”

如 cmets 中所述。以零大小进行聚合是没有意义的,因此弹性搜索会引发错误

 [size] must be greater than 0. Found [0] in [event]

除了你提到的上述错误

希望对你有帮助

【讨论】:

    猜你喜欢
    • 2015-08-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-19
    • 2014-11-18
    相关资源
    最近更新 更多