我想将我的弹性从1.5.2升级到2.1.1,当我使用migration plugin找到要解决的问题时,在迁移本身之前,我在"Conflicting field mappings"上遇到错误 .
在关于这个问题的documentation中,它说:
具有相同名称,在同一索引中的不同类型的字段必须具有相同的映射,但copy_to,dynamic,enabled,ignore_above,include_in_all和properties参数除外,每个字段可能具有不同的设置 . [...] Elasticsearch不会在存在冲突的字段映射时启动 . 必须使用新映射删除或重新索引这些索引 .
我无法理解它是这样的原因......我的意思是“具有相同名称的字段,在同一索引中,在不同类型中,必须具有相同的映射”?
1 回答
问题是类型存储在相同的Lucene索引中 . Lucene不适用于类型的上下文 . 因此,在两种不同类型中使用时,字段的名称与存储在Lucene中的字段名称相同 . 由于Lucene使用相同的名称,因此必须使用相同的类型 .
因此,以下两个字段将添加到Lucene的同一个字段中:
在lucene索引中都被称为:fieldOne