索引映射上ES1和ES2之间的冲突

时间:2016-01-29 22:25:12

标签: elasticsearch

例如我的脚本如下:

curl -XPUT 'http://localhost:9201/test1/_mapping/type1' -d '{"type1":{"properties":{"testfd":{"type":"long"}}}}'
curl -XPUT 'http://localhost:9201/test1/_mapping/type2' -d '{"type2":{"properties":{"testfd":{"type":"string"}}}}'

它引发了异常:The same fields in two mapping types are conflict, one is long and other is string 然后我将字段testfd更改为相同的数据类型string,它可以正常工作。

1 个答案:

答案 0 :(得分:1)

此更改已从ES 2.0引入。来自docs

  

具有相同名称,相同索引,不同类型的字段必须   具有相同的映射,除了copy_to,dynamic,   enabled,ignore_above,include_in_all和属性参数,   每个字段可能有不同的设置。

这样做是因为同一索引中不同文档类型中具有相同名称的字段在内部映射到相同的Lucene字段名称。不同的数据类型可能会破坏您的索引。 This blog详细解释了所有内容。

希望这有帮助!