如何在Elasticsearch中查找和替换部分数据?
我尝试过update_by_query。但是,它代替了我所要查找的某个字段中的整个值。我要实现的目标是在句子中找到“猫”并将其替换为“狗”
“这是一只猫” ===>“这是一只狗”
我尝试了以下查询:
// body: {
// script: {source: ctx._source.aa = params.term,
// params: {term: dog},
// lang: "painless"
// },
// query: {term: cat}
// }};
答案 0 :(得分:0)
您可以在replace
中使用script
方法
POST {index_name}/{type}/{id}/_update
{
"script" : {
"source": "ctx._source.aa=ctx._source.aa.replace(\"cat\", params.term)",
"params": { "term": "dog" },
"lang": "painless"
}
}
注意:脚本语法使用Elasticsearch 6.x.x