【发布时间】:2017-08-23 00:15:01
【问题描述】:
我已经为 Elasticsearch 5.5.2 和 Kibana 安装了 Docker 容器。我开始学习映射类型,通过xcurl用如下代码创建了一个索引:
{
"mappings": {
"user": {
"_all": { "enabled": false },
"properties": {
"title": { "type": "text" },
"name": { "type": "text" },
"age": { "type": "integer" }
}
}
}
索引创建成功,我决定插入一些数据。当我尝试将字符串添加到整数字段 i.e. {"age": "hello"} 时,Elastic 显示错误(这意味着映射工作正常)。问题出在其他数据类型上:
1.它在字符串字段中接受整数和浮点数(我认为这可能是因为隐式转换)。
2.它在agefield 中接受像22.4 这样的浮点数(当我使用 Kibana 或 xcurl 搜索时,agefield 的内容显示为浮点数而不是整数,这意味着没有从浮点数进行强制转换为整数)
我做错了什么?
【问题讨论】:
-
您能描述一下您是如何插入文档的吗?
-
对于您问题的第一部分;
22.2是一个完全有效的字符串。字符串不是普通的字母,它可以是任何东西。不同之处在于text字段的分析和标记与其他字段不同。 -
@aclokay
curl -XPOST localhost:9200/my_index/user -d '{"title":"A title", "name":"username","age":223.5}'并返回{ "_index" : "my_index", "_type" : "user", "_id" : "AV4JO3pZh8gyIWsivJ6d", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "successful" : 1, "failed" : 0 }, "created" : true } -
@MatsLindh 即使我没有用双引号指定它?我正在插入
22.2而不是"22.2"并且它接受该值。
标签: elasticsearch kibana