我已经为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.它接受22.4
字段中age
之类的浮点数(当我使用Kibana或xcurl搜索时,age
字段内容显示为float而不是整数,这意味着是不是从浮点数转换为整数)
我做得不好?
答案 0 :(得分:1)
你试过禁用胁迫吗?它可以在现场级别完成:
{
"mappings": {
"user": {
"_all": { "enabled": false },
"properties": {
"title": { "type": "text" },
"name": { "type": "text" },
"age": { "type": "integer",
"coerce": false}
}
}
}
或在所有字段的索引级别:
"settings": {
"index.mapping.coerce": false
},
"mappings": {
...