我在索引中的所有文档中都有一个包含以下内容的文档:
"universities": {
"number": 1,
"state": [
{
"Name": "michigan",
"country": "us",
"code": 5696
}
]
}
我想像这样
更新索引中的所有文档 "universities": {
"number": 1,
"state": [
{
"Name": "michigan",
"country": "us",
"code": 5696
},
{
"Name": "seatle",
"country": "us",
"code": 5695
}
]
}
这可以使用elasticsearch 2.4.1中的update_by_query吗?
我尝试了以下查询:
"script": {
"inline": "for(i in ctx._source.univeristies.state){i.name=Text}",
"params": {
"Text": "seatle"
}
}
}
但是将名称附加到现有名称而不是在列表中创建新名称。
答案 0 :(得分:1)
您需要使用此脚本:
"script": {
"inline": "ctx._source.universities.state.add(new_state)",
"params": {
"new_state": {
"Text": "Seattle",
"country": "us",
"code": 5695
}
}
}
}