我正在使用 ES 版本 2.2.0
我有一个可能有长值或双值的字段。如何让 ElasticSearch 将长值强制加倍,以便在插入新文档时不会发生冲突?
例如,如果值是 5,我希望 ES 将其强制转换为 5.0,以便之后可以插入 12.3。
是否有某种动态索引模板可以在插入时自动进行转换?
谢谢您的帮助。
您可以简单地double在映射中将该字段的类型设置为完成这项工作。您输入该字段的任何内容都将被强制转换为双精度值。
curl -XPUT localhost:9200/index -d '{
"mappings": {
"type": {
"properties": {
"myfield": {
"type": "double"
}
}
}
}
}'
Run Code Online (Sandbox Code Playgroud)
您需要在创建索引/映射时执行此操作,否则在创建映射后无法更改类型。
更新
您还可以像这样利用动态映射模板:
PUT my_index
{
"mappings": {
"my_type": {
"dynamic_templates": [
{
"doubles": {
"match_mapping_type": "long",
"mapping": {
"type": "double"
}
}
}
]
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3185 次 |
| 最近记录: |