我在单个elasticsearch查询中遇到一个奇怪的问题,导致集群不稳定。 我有一个查询,在嵌套字段上使用过滤器过滤器聚合。当我在几乎没有值的嵌套字段上进行术语查询时,查询工作正常(对集群没有影响)但是,如果我在术语中添加许多项来查询嵌套字段内部,则集群会变得不稳定。 我有一个包含4个数据节点和一个主节点的集群,每个节点上有32 GB内存。
{
"size" : 0,
"aggregations" : {
"amount" : {
"terms" : {
"field" : "user_id",
"size" : 0
},
"aggregations" : {
"totalAmount" : {
"nested" : {
"path" : "amount"
},
"aggregations" : {
"testfilters" : {
"filter" : {
"bool" : {
"must" : {
"bool" : {
"must" : [ {
"terms" : {
**"amount.group" : [ "A1", "A2", "A4",..... "A100" ]**
}
} ]
}
}
}
},
"aggregations" : {
"paidAmountTotal" : {
"sum" : {
"field" : "amount.paid"
}
}
}
}
}
}
}
}
}
}
上述查询导致群集变得不稳定。我所做的更改是在粗体文本上面,这是一个嵌套字段(amount.group),我对其进行了术语聚合。
我已经测试过添加match_all而不是amount.group字段的值,尽管我对集群没有任何问题。
嵌套字段中的术语聚合如何工作? 这可能是什么原因?