我在elasticsearch中存储了一些文档,如下所示:
{
"date" : 1,
"field1" : 0.2,
"field2" : 0.5,
"field3" : 0.3
},
{
"date" : 1,
"field1" : 0.9,
"field2" : 0.5,
"field3" : 0.1
},
{
"date" : 2,
"field1" : 0.2,
"field2" : 0.6,
"field3" : 0.7
}
我想得到的是一个计数,按日期分组,field1、field2或field3中的每一个对每个文档最大的次数,即预期结果如下:
{
"date" : 1,
"field1-greatest" : 1,
"field2-greatest" : 1,
"field3-greatest" : 0
},
{
"date" : 2,
"field1-greatest" : 0,
"field2-greatest" : 0,
"field3-greatest" : 1
}
我正在使用一个日期术语聚合,但不知道如何比较不同的字段来使用elasticsearch聚合执行max和count类型的操作。有什么建议吗?
1条答案
按热度按时间r7knjye21#
您可以选择以下选项:
小贴士:确保你的
field*
属性Map为类型double
,不是float
因为最大aggfield1
例如,可以0.8999999761581421
而不是0.9
.校正
这是一个非常重要的用例,所以您可能需要使用脚本。这里有一些东西可以让你开始: