我使用Elasticsearch别名字段来重命名映射中的某些字段,而不需要重新索引所有字段。效果很好。现在,我还想重命名一些多个字段,如下所示:
"message":{
"type":"text",
"fields":{
"raw":{
"type":"keyword"
}
}
}这是一个名为message的分析字段和一个名为message.raw的关键字版本。我可以像这样为message做一个别名:
"title":{
"type":"alias",
"path":"message"
}但我似乎想不出如何将message.raw字段化名。我尝试过不同的东西。
raw指定为title中的字段"title":{
"type":"alias",
"path":"message",
"fields":{
"raw":{
"type":"alias",
"path":"message.raw"
}
}
}这会在更新映射时产生以下错误:标题的映射定义不支持参数:字段:{raw={type=alias,path=message.raw}}
title.raw为新字段:"title":{
"type":"alias",
"path":"message"
},
"title.raw":{
"type":"alias",
"path":"message.raw"
}这会导致错误:无法将字段别名映射标题与非字段别名的映射合并。
这是支持的吗?
发布于 2019-08-16 07:14:47
不支持引用别名中的多个字段。来自文档:aliases cannot be used as the target of copy_to or in multi-fields。
您可以为您的多字段创建一个没有点的别名。您需要做的只是简单地将title.raw字段命名不同,例如title_raw
"title":{
"type":"alias",
"path":"message"
},
"title_raw":{ <--- change the name here
"type":"alias",
"path":"message.raw"
}然后,您可以以与message.raw相同的方式查询title_raw。
https://stackoverflow.com/questions/57514562
复制相似问题