我正在使用Elasticsearch 2.4。用一个整数字段声明索引模板后:
curl -XPUT 'localhost:9201/_template/template_1?pretty' -d'
{
"template": "te*",
"mappings": {
"type1": {
"properties": {
"aaa": {
"type": "integer"
}
}
}
}
}
'
并将数字为字符串:
的文档放入此索引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是否将隐式转换为整数。
答案 0 :(得分:1)
_source
字段包含原始文档。在处理过程中,Elasticsearch会自动将字段的值转换为整数,然后转换为索引。因此索引包含值的整数表示,而原始文档包含字符串值。