我在索引数据时使用动态绑定。例如
{ "a" : 10 }
将为long
创建字段的映射。虽然第二次索引数据时可能会加倍{ "a" : 10.10 }
。但由于映射已经定义了很长时间,因此它会将数据编入索引。修复此问题的唯一方法是事先定义映射,由于各种原因我不想这样做。
所以我的问题 - 我是否有办法强制弹性搜索将所有数字字段视为double
。
答案 0 :(得分:2)
您可以使用动态映射模板:https://www.elastic.co/guide/en/elasticsearch/reference/current/dynamic-templates.html
如果匹配为long,则将其映射为double:
PUT my_index
{
"mappings": {
"my_type": {
"dynamic_templates": [
{
"integers": {
"match_mapping_type": "long",
"mapping": {
"type": "double"
}
}
}
]
}
}
}