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