Вы можете сделать это просто так:
Создать документ с пустым словарем
PUT index/1
{
"dict": {}
}
Обновить документ, чтобы заполнить словарь параметром
POST index/_update/1
{
"script" : {
"source": "ctx._source.dict.putAll(params)",
"lang": "painless",
"params" : {
"key1": ["val1", "val2", "val3"],
"key2": ["val4", "val5"]
}
}
}
Вы также можете индексировать документ с нуля, используя скрипт (с scripted_upsert
)
POST index/_update/1
{
"scripted_upsert":true,
"script" : {
"source": """
ctx._source.dict = [:];
ctx._source.dict['key1'] = params.key1;
ctx._source.dict['key2'] = params.key2;
""",
"params" : {
"key1" : ["val1", "val2", "val3"],
"key2" : ["val1", "val2", "val3"]
}
},
"upsert" : {}
}
В обоих случаях вы получите такой документ:
GET / index / 1
{
"dict": {
"key1" : ["val1", "val2", "val3"],
"key2" : ["val1", "val2", "val3"]
}
}