【问题标题】:ElasticSearch types coerce from long to doubleElasticSearch 类型强制从 long 到 double
【发布时间】:2016-02-29 15:30:15
【问题描述】:

我使用的是 ES 版本 2.2.0

我有一个字段可能有 long 或 double 值。 如何使 ElasticSearch 强制 long 值加倍,以便在插入新文档时不会发生冲突?

例如,如果值为 5,我希望 ES 将其强制转换为 5.0,以便之后插入 12.3。

我可以应用某种动态索引模板来在插入时自动进行转换吗?

感谢您的帮助。

【问题讨论】:

    标签: elasticsearch


    【解决方案1】:

    您只需在映射中将该字段的类型设置为double 即可完成工作。您输入该字段的任何内容都会被强制转换为双重。

    curl -XPUT localhost:9200/index -d '{
      "mappings": {       
         "type": {
            "properties": {
                "myfield": {
                    "type": "double"
                }
            }
         }
      }
    }'
    

    您需要在创建索引/映射时执行此操作,否则在创建映射后您无法更改类型。

    更新

    您也可以像这样利用dynamic mapping templates:

    PUT my_index
    {
      "mappings": {
        "my_type": {
          "dynamic_templates": [
            {
              "doubles": {
                "match_mapping_type": "long",
                "mapping": {
                  "type": "double"
                }
              }
            }
          ]
        }
      }
    }
    

    【讨论】:

    • 我想在领域方面比这更敏捷。通过动态索引模板执行此操作的方法是什么?
    猜你喜欢
    • 1970-01-01
    • 2020-12-01
    • 2011-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多