尝试将大数字保存为float时,number_type [BIG_INTEGER]没有匹配的标记

时间:2017-10-24 17:48:51

标签: elasticsearch elasticsearch-5

我有下一个类型的动态模板:

    "dynamic_templates" : [
      {
        "$r_as_float" : {
          "match" : "*$r",
          "mapping" : {
            "type" : "float"
          }
        }
      }
    ]

当我尝试创建新文档时:

curl -XPOST es-1:9200/mydataspace_001001/type/276121/_create -d '
{
  "kbk$r": 17404121130190019244,
}

我收到下一个错误:

{"type":"illegal_state_exception","reason":"No matching token for number_type [BIG_INTEGER]"}

例如,"kbk$r": 17404时我没有此错误。

1 个答案:

答案 0 :(得分:2)

float只能采用单精度32位IEEE 754浮点数,17404121130190019244超过该限制。

您需要使用doublelong类型而不是float。请随时查看different numeric types