我是Elastic Search的新手,正在尝试使用Metric聚合为我的文档进行查询。但是,当我为总和度量标准聚合添加字段:min_doc_count = 1时,出现错误: `
{
"error": {
"root_cause": [
{
"type": "illegal_argument_exception",
"reason": "[sum] unknown field [min_doc_count], parser not found"
}
],
"type": "illegal_argument_exception",
"reason": "[sum] unknown field [min_doc_count], parser not found"
},
"status": 400
}
`
我在这里缺少什么?
`
{
"aggregations" : {
"myKey" : {
"sum" : {
"field" : "field1",
"min_doc_count": 1
}
}
}
}
`
答案 0 :(得分:1)
我不确定您拥有sum
关键字的原因/位置?
min_doc_count
的想法是确保给定aggs查询返回的存储桶包含至少N个文档,下面的示例仅返回出现在10个或更多文档中的主题的主题存储桶。
GET _search
{
"aggs" : {
"docs_per_subject" : {
"terms" : {
"field" : "subject",
"min_doc_count": 10
}
}
}
}
因此,考虑到这一点,您的会重构以下内容......虽然将min_doc_count
设置为1
时,根本不需要保留参数。
GET _search
{
"aggs" : {
"docs_per_subject" : {
"terms" : {
"field" : "field1",
"min_doc_count": 1
}
}
}
}
答案 1 :(得分:0)
如果您希望仅对字段的非零值求和,则可以在查询部分中过滤掉这些零值:
{
"size": 0,
"query": {
"bool": {
"must": [
{
"range": {
"field": {
"gt": 0
}
}
}
]
}
},
"aggregations": {
"myKey": {
"sum": {
"field": "field1"
}
}
}
}