У меня есть документ вasticsearch, который выглядит следующим образом:
{
"_index": "stats",
"_type": "_doc",
"_id": "1",
"_score": 1.0,
"_source": {
"publishTime": {
"lastUpdate": 1580991095131,
"h0_4": 0,
"h4_8": 0,
"h8_12": 3,
"h12_16": 5,
"h16_20": 2,
"h20_24": 1
},
"postCategories": {
"lastUpdate": 1580991095131,
"tech": 56,
"lifestyle": 63,
"healthcare": 49,
"finances": 25,
}
}
}
Обновление / Увеличение существующих значений свойств путем отправки запроса POST
на /stats/_update/1
отлично работает! Однако, если я пытаюсь сохранить несуществующее имя свойства в postCategories
, я получаю Bad Request (400)
ошибку типа remote_transport_exception/illegal_argument_exception
:
"ctx._source.postCategories.relationships += params.postCategories.relationships",
^---- HERE"
Upsert
{
"script": {
"source": "ctx._source.postCategories.relationships += params.postCategories.relationships",
"lang": "painless",
"params": {
"postCategories": {
"relationships": 2
}
}
},
"upsert": {
"postCategories": {
"relationships": 2
}
}
}
Я также попробовал метод Scripted Upsert, следуя документации здесь , однако возникает та же ошибка:
Scripted Upsert
{
"scripted_upsert":true,
"script": {
"source": "ctx._source.postCategories.relationships += params.postCategories.relationships",
"params": {
"postCategories": {
"relationships": 2
}
}
},
"upsert": {}
}
Может кто-нибудь сказать мне, как правильно добавить / вставить новые имена свойств в объект postCategories
, пожалуйста?
Спасибо!