扩展 elasticsearch 文档中的列表字段
extending an list field in elasticsearch document
我的 elasticsearch 索引文档中有 user_data 字段,例如;
示例文档:
user_data : [
{
userid :1,
order_id :32
},
{
userid :8,
order_id : 99
}
]
我的内存中有另一组用户数据,我想扩展(添加列表到列表)
内存中的数据:
preserved_user_data : [
{
userid :991,
order_id :89
},
{
userid :89,
order_id :76
}
]
我想将该文档更新为:
user_data : [
{
userid :1,
order_id :32
},
{
userid :8,
order_id : 99
},
{
userid :991,
order_id :89
},
{
userid :89,
order_id :76
}
]
我试过使用脚本 ctx._source.user_data += params.preserved_user_data
但它使文档的字段为空数组。
P.S :我正在使用操作类型通过并行批量执行此操作:更新 ES 7.1.1
使用更新脚本将数组附加到文档中的数组的示例查询
查询:
POST index35/_update/tg8DwHAB4HO3_VSZUdzR
{
"script": {
"lang": "painless",
"inline": "if(!ctx._source.containsKey('user_data')){ctx._source['user_data']=[]} for(int i=0;i<params.data.length;i++){ctx._source.user_data.add(params.data[i])}",
"params": {
"data": [
{
"userid": 991,
"order_id": 89
},
{
"userid": 89,
"order_id": 76
}
]
}
}
}
结果:
"hits" : [
{
"_index" : "index35",
"_type" : "_doc",
"_id" : "tg8DwHAB4HO3_VSZUdzR",
"_score" : 1.0,
"_source" : {
"user_data" : [
{
"userid" : 1,
"order_id" : 32
},
{
"userid" : 8,
"order_id" : 99
},
{
"userid" : 991,
"order_id" : 89
},
{
"userid" : 89,
"order_id" : 76
}
]
}
}
]
}
我的 elasticsearch 索引文档中有 user_data 字段,例如;
示例文档:
user_data : [
{
userid :1,
order_id :32
},
{
userid :8,
order_id : 99
}
]
我的内存中有另一组用户数据,我想扩展(添加列表到列表)
内存中的数据:
preserved_user_data : [
{
userid :991,
order_id :89
},
{
userid :89,
order_id :76
}
]
我想将该文档更新为:
user_data : [
{
userid :1,
order_id :32
},
{
userid :8,
order_id : 99
},
{
userid :991,
order_id :89
},
{
userid :89,
order_id :76
}
]
我试过使用脚本 ctx._source.user_data += params.preserved_user_data
但它使文档的字段为空数组。
P.S :我正在使用操作类型通过并行批量执行此操作:更新 ES 7.1.1
使用更新脚本将数组附加到文档中的数组的示例查询
查询:
POST index35/_update/tg8DwHAB4HO3_VSZUdzR
{
"script": {
"lang": "painless",
"inline": "if(!ctx._source.containsKey('user_data')){ctx._source['user_data']=[]} for(int i=0;i<params.data.length;i++){ctx._source.user_data.add(params.data[i])}",
"params": {
"data": [
{
"userid": 991,
"order_id": 89
},
{
"userid": 89,
"order_id": 76
}
]
}
}
}
结果:
"hits" : [
{
"_index" : "index35",
"_type" : "_doc",
"_id" : "tg8DwHAB4HO3_VSZUdzR",
"_score" : 1.0,
"_source" : {
"user_data" : [
{
"userid" : 1,
"order_id" : 32
},
{
"userid" : 8,
"order_id" : 99
},
{
"userid" : 991,
"order_id" : 89
},
{
"userid" : 89,
"order_id" : 76
}
]
}
}
]
}