问题描述
我有一个包含来自不同来源的事件的索引,因此,对于同一字段,我有两个不同的名称,分别是“ accounting_date ”和“ dt_comptable ”,需要查询并获取两个字段的最大值, 以下查询对我来说只适用于一个字段:
GET indexXX/_search
{
"size": 0,"aggs": {
"latest_accounting_date": {
"max": {
"field": "dt_comptable"
}
}
}
}
我需要添加其他字段“ accounting_date ”。
解决方法
输入scripting ...代替指定字段,您可以指定一个脚本,该脚本将检索任意一个字段,无论哪个存在,但是max
聚合将能够同时在两个字段上工作:
GET indexXX/_search
{
"size": 0,"aggs": {
"latest_accounting_date": {
"max": {
"script": {
"source": "doc['dt_comptable'].size() > 0 ? doc['dt_comptable'].value : doc['accounting_date'].value"
}
}
}
}
}