我在Elasticsearch的索引中有两个字段 field1 和 field2
我需要将 field1 重命名为 field2
我也想将 field2 重命名为 field1
这是我当前的映射的外观,并且为此索引建立了许多文档的索引
{
"mappings": {
"properties": {
"field1": {
"type": "text"
},
"field2" : {
"type" : "completion"
}
}
}
}
我需要以下映射
{
"mappings": {
"properties": {
"field1": {
"type": "completion"
},
"field2" : {
"type" : "text"
}
}
}
}
我可以重命名字段并重新建立索引吗?
我正在使用Elasticsearch 7.4版
最佳答案
是的,您可以使用update-by-query API来实现,如下所示:
POST index/_update_by_query
{
"script": {
"source": "def tmp1 = ctx._source.field2; ctx._source.field2 = ctx._source.field1; ctx._source.field1 = tmp1;",
"lang": "painless"
}
}
关于elasticsearch - 在Elasticsearch中交换字段名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59173179/