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 会自动将字段的值转换为整数,然后进行索引。因此索引包含值的整数表示,而原始文档包含字符串值。
我正在使用 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 会自动将字段的值转换为整数,然后进行索引。因此索引包含值的整数表示,而原始文档包含字符串值。