为什么Elasticsearch在从1.x到2.x的迁移中存在冲突的字段映射?

时间:2016-01-25 15:52:40

标签: elasticsearch

我想将弹性从1.5.2升级到2.1.1,当我使用migration plugin来查找要解决的问题时,在迁移本身之前,我会在"冲突字段映射&#上出现错误34。

关于此问题的documentation,它说:

  

具有相同名称的字段,在同一索引中,在不同类型中,必须具有相同的映射,但copy_to,dynamic,enabled,ignore_above,include_in_all和properties参数除外,每个字段可能具有不同的设置。 [...] Elasticsearch不会在存在冲突的字段映射时启动。必须使用新映射删除或重新索引这些索引。

我无法理解原因是什么......我的意思是为什么"具有相同名称的字段,在同一索引中,在不同类型中,必须具有相同的映射"?

1 个答案:

答案 0 :(得分:2)

问题是类型存储在相同的Lucene索引中。 Lucene不适用于类型的上下文。因此,在两种不同类型中使用时,字段的名称与存储在Lucene中的字段名称相同。由于Lucene使用相同的名称,因此必须使用相同的类型。

因此,以下两个字段将添加到Lucene的同一字段中:

index    -   type   -   field
myindex  -   type_a - fieldOne
myindex  -   type_b - fieldOne

在lucene索引中都被称为:fieldOne