对于以下数据结构:
{
"sprints": [
{
"id": 17193,
"name": "Sprint 12"
},
{
"id": 16510,
"name": "Sprint 11"
}
],
"velocityStatEntries": {
"16510": {
"estimated": {
"value": 49
},
"completed": {
"value": 36
}
},
"17193": {
"estimated": {
"value": 52
},
"completed": {
"value": 70
}
}
}
}
有鉴于此,我希望能够生成一个更易于处理的Elasticsearch对象,方法是将估计字段和已完成字段的值与匹配ID一起添加到sprint中。
首先,我使用split分割sprint字段上的数据,因此,我只有一个sprint对象,并且可以使用[sprint][id]知道我正在处理什么sprint。
通过以下两种方式之一进行筛选:
-使用
合并
将[velocityStateEntries][]对象添加到
当前冲刺
-使用
添加\u字段
添加我需要的两个字段
从句法上讲,这是可能的吗?理想情况下,我希望能够进行某种“双重替代”,获得当前sprint的估计时间,比如:
add_field => {
"estimatedTime" => "%{[velocityStatEntries][%{[sprints][id]}][estimated][value]}"
}
但这似乎只适用于硬编码格式,例如
"estimatedTime" => "%{[velocityStatEntries][1234][estimated][value]}"