使用弹性搜索6.2 因此,我具有一个深层嵌套的文档结构,该结构具有所有适当的映射(嵌套,文本,关键字等)。示例文件如下:
array(2) {
["Red"]=>
array(2) {
[0]=>
string(5) "Apple"
[1]=>
string(3) "Sun"
}
["Green"]=>
array(1) {
[0]=>
string(5) "Grass"
}
}
我想做的是找出所有行从“创建”到“结束”所需的平均时间。
我创建了以下查询
{
"type": "Certain Type",
"lineItems": [
{
"lineValue": 10,
"events": [
{
"name": "CREATED",
"timeStamp": "TIME VALUE"
},
{
"name": "ENDED",
"timeStamp": "TIME VALUE"
}
]
}
]
}
结果是聚合结果为0,这是错误的。
有什么办法可以做到这一点?
答案 0 :(得分:0)
在嵌套对象脚本中使用doc [无效,因为嵌套是用于弹性搜索的新文档。
请改用params._source(https://www.elastic.co/guide/en/elasticsearch/reference/current/search-request-script-fields.html)。请注意,如果您有很多文档或需要大量查询,请访问源文件确实很慢,请考虑在主文档上添加此字段。
我认为所有值都存在,如果需要的话,如果要进行健壮性测试,则应该添加。
long toTime = 0;
long fromTime = 0;
timeDiff = params['_source']['ENDED']
fromTime = params['_source']['CREATED']
return (toTime - fromTime);