我使用的是ES 2.2.0版本
我有一个可能有长值或双值的字段。 如何让ElasticSearch强制将长值加倍,以便在插入新文档时不会发生冲突?
例如,如果值为5,我希望ES将其强制转换为5.0,以便之后可以插入12.3。
是否有某种动态索引模板可以应用于在插入时自动进行转换?
感谢您的帮助。
答案 0 :(得分:3)
您只需在映射中将该字段的类型设置为double
即可完成工作。你进入该领域的任何东西都会被强制进入双重状态。
curl -XPUT localhost:9200/index -d '{
"mappings": {
"type": {
"properties": {
"myfield": {
"type": "double"
}
}
}
}
}'
您需要在索引/映射创建时执行此操作,否则在创建映射后无法更改类型。
<强>更新强>
你也可以像这样利用dynamic mapping templates:
PUT my_index
{
"mappings": {
"my_type": {
"dynamic_templates": [
{
"doubles": {
"match_mapping_type": "long",
"mapping": {
"type": "double"
}
}
}
]
}
}
}