我们可以强制弹性搜索将所有数字字段视为double

时间:2016-05-10 18:58:08

标签: elasticsearch lucene

我在索引数据时使用动态绑定。例如

{  "a" : 10 } 

将为long创建字段的映射。虽然第二次索引数据时可能会加倍{ "a" : 10.10 }。但由于映射已经定义了很长时间,因此它会将数据编入索引。修复此问题的唯一方法是事先定义映射,由于各种原因我不想这样做。

所以我的问题 - 我是否有办法强制弹性搜索将所有数字字段视为double

1 个答案:

答案 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"
            }
          }
        }
      ]
    }
  }
}