我在我的Elasticsearch服务器上上传了json文件,并且我有一个对象" meta"带有字段名称和字段值。有时值是一个字符串,有时是一个日期,因此动态映射不起作用。 我尝试使用显式映射将字段设置为字符串,但我总是有相同的错误"合并动态更新触发了冲突:不同类型的mapper [customer.meta.value],current_type [string] ,merged_type [date]"}}},:level =>:warn"
我可以使用参数" ignore_conflict"或者我如何上传多类型字段?
THX
答案 0 :(得分:1)
elasticsearch中的同一字段不能有两种数据类型。无法对其进行索引。动态映射意味着从插入到字段中的第一个值标识类型。如果您尝试在该字段中插入其他类型,则会出错。如果您需要存储字符串和日期,最好的办法是将映射设置为使用字符串,并在将日期传递给elasticsearch之前将其显式转换为字符串。
答案 1 :(得分:0)
我为_ default_禁用了date_detection,这是有效的。 现在我的问题如下:我想仅为meta.value和customer.meta.value禁用date_detection。这对第一个是正确的,但我不能为第二个,因为它是我认为的嵌套对象。
我试过了:
curl -XPUT 'localhost:9200/rr_sa' -d '
{
"mappings": {
"meta": {
"date_detection": false
},
"customer.meta": {
"date_detection": false
}
}
}
'