Elasticsearch 中的整数打印为字符串

Integer in Elasticsearch printed as string

我正在使用 Elasticsearch 2.4。用一个整数字段声明索引模板后:

curl -XPUT 'localhost:9201/_template/template_1?pretty' -d'
{
  "template": "te*",
  "mappings": {
    "type1": {
      "properties": {
        "aaa": {
          "type": "integer"
        }
      }
    }
  }
}
'

并将编号为 string:

的文档放入此索引
curl -XPUT 'localhost:9201/template_1/type1/1?pretty' -d'
{
    "aaa" : "3"
}
'

我收到的搜索结果:

curl -XGET 'http://localhost:9201/template_1/_search?pretty=true?q=*:*'
...
    "hits" : {
        "total" : 1,
        "max_score" : 1.0,
        "hits" : [ {
          "_index" : "template_1",
          "_type" : "type1",
          "_id" : "1",
          "_score" : 1.0,
          "_source" : {
            "aaa" : "3"
          }
        } ]
      }

为什么 aaa 字段未打印为索引模板中声明的整数(不带引号)?该字段绝对是整数,因为当我尝试将一些字符分配给 aaa 时出现异常。但是这个搜索结果看起来很混乱,我不知道 Elasticsearch 是否隐式转换为整数。

_source 字段包含 raw 文档。在处理过程中,Elasticsearch 会自动将字段的值转换为整数,然后进行索引。因此索引包含值的整数表示,而原始文档包含字符串值。