我想根据字段数据获取弹性搜索库中存在的所有文档ID,并使用新数据更新该字段。
例如: “ _index”:“ conn2”, “ _type”:“ conn2”, “ _id”:“ doc1537857086536”, “ _score”:1 “_资源”: { “ suitename”:“ TestSuite”
我想用“ TestSuite2”替换套件名称,其中对于所有包含“套件名称”的文档ID,套件名称为“ TestSuite”:“ TestSuite”
如果我可以使用任何现有的API或任何方法,请帮助我。
谢谢
答案 0 :(得分:0)
您可以使用Update by Query API。
您的通话将如下所示:
[EDIT]:更新了此调用以使用脚本来更新套件名称字段。
POST conn2/_update_by_query
{
"script": {
"inline": "ctx._source.suitename = 'TestSuite2'",
"lang": "painless"
},
"query": {
"term": {
"suitename": "TestSuite"
}
}
}
或者,您也可以使用_reindex。
POST _reindex
{
"source": {
"index": "conn2"
},
"dest": {
"index": "new_index"
},
"script": {
"source": "if (ctx._source.suitename == 'TestSuite') {ctx._source.suitename = 'TestSuite2'}",
"lang": "painless"
}
}