关于 index_mapping 默认值的疑问
来源:4-6 -index_options参数说明

顾小北
2018-11-17
老师好,我想请问一下,在mapping一节中有提到null_value,是针对插入filed为空的时候设置默认值。
不知道es有没有对插入filed的值与预设fieldmapping不匹配的默认处理。
比如说我的一个field预设mapping是object,但我插入的数据可能是text,这时候插入就会报错,那有没有办法让其不报错而在这个报错的字段填充一个默认值,以保证这条数据正常入库呢?
'caused_by': {'type': 'illegal_state_exception', 'reason': "Can't get text on a START_OBJECT at 1:67280"}}}}
应用情景是我只能动态创建mapping,无法事先知道数据内部的字段,所以可能遇到这种情况,数据比较乱。
写回答
1回答
-
1.可以使用 ignore_malformed 配置忽略类型报错,这种情况是不索引类型冲突的字段,但可以在 source 里面查到原数据,如下所示:
https://www.elastic.co/guide/en/elasticsearch/reference/current/ignore-malformed.html
2.如果你要处理,必须前置,比如在 logstash 里面你可以检查字段是否有某个一定存在的 Object 的子字段,不存在,则自己去拼接成一个 object。总之这个处理是需要前置的,在写入 es 前要保证符合你的预期
012018-11-25
相似问题