elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗,elasticsearch,lucene,elasticsearch,Lucene" /> elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗,elasticsearch,lucene,elasticsearch,Lucene" />

elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗

elasticsearch 我们可以强制弹性搜索将所有数字字段视为双精度字段吗,elasticsearch,lucene,elasticsearch,Lucene,我在索引数据时使用动态绑定。比如说 { "a" : 10 } 将为字段创建映射为long。而第二次索引时,数据可能是双{“a”:10.10}。但由于映射已经定义为尽可能长的长度,因此它将索引尽可能长的数据。解决这个问题的唯一方法是提前定义映射,由于各种原因,我不想这样做 所以我的问题是,有没有一种方法可以强制弹性搜索,将所有数字字段都视为双精度 您可以使用动态映射模板: 如果它与long匹配,则将其映射为double: PUT my_index { "mappings": {

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

{  "a" : 10 } 
将为字段创建映射为
long
。而第二次索引时,数据可能是双
{“a”:10.10}
。但由于映射已经定义为尽可能长的长度,因此它将索引尽可能长的数据。解决这个问题的唯一方法是提前定义映射,由于各种原因,我不想这样做


所以我的问题是,有没有一种方法可以强制弹性搜索,将所有数字字段都视为
双精度

您可以使用动态映射模板:

如果它与long匹配,则将其映射为double:

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

我已经找到了答案。我会试着出去看看。谢谢,我刚刚在网上发布后就发现了这一点。非常感谢。在发布我的答案后,看到了您关于自己寻找解决方案的评论:)