使用Elasticsearch 8.8
我尝试使用脚本管道重新索引文档,我将旧的_type元数据转换为一个新的字段'@ type',但所有的脚本删除所有的_type和_score字段从源文件。有没有办法获取字符串用于设置新字段?
主要目标是从弹性2.4升级到8
单据示例:
{
"_index": "foo",
"_type": "bar",
"_source": {
}
}
目标对象:
{
"_index": "foo",
"_source": {
"@type": "bar"
}
}
尝试类似于:ctx['@type'] = ctx._type
将返回“null”,因为_type在运行任何东西之前被删除。有变通办法吗?
1条答案
按热度按时间vsaztqbk1#
据我所知,这是不可能的,因为在ES 8中reindex context不再提供这些信息。在移除Map类型之前,它曾经是up until 6.8的情况。
您需要做的是首先更新2.4源集群中的数据以添加该字段,因为2.4提供了
ctx._type
information,然后才重新索引到8.9