我想根据字段数据获取 Elasticsearch 存储库中存在的所有文档 ID,并使用新数据更新该字段。
例如:“_index”:“conn2”,“_type”:“conn2”,"_id": "doc1537857086536",“_score”:1,“_来源”: {“套件名称”:“TestSuite”
我想将 suitename 替换为“TestSuite2”,其中 suitename="TestSuite"对于包含“suitename”的所有文档 ID:“TestSuite”
- 我尝试使用更新 API,因为它需要提及文档 ID。
如果我可以使用任何现有的 API 或任何方法,请帮助我。
谢谢
您可以使用Update by Query API .
您的调用将如下所示:
[编辑]:更新了此调用以使用脚本更新 suitename 字段。
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"
}
}
我是一名优秀的程序员,十分优秀!