1
我正在使用ES版本2.2.0ElasticSearch类型从长变为双重
我有一个字段可能有长或双值。 如何使ElasticSearch强制将长整型值加倍,以便在插入新文档时不会发生冲突?
例如,如果值是5,我希望ES将它强制为5.0,以便我可以在之后插入12.3。
是否有某种动态索引模板可以应用于插入时自动进行转换?
感谢您的帮助。
我正在使用ES版本2.2.0ElasticSearch类型从长变为双重
我有一个字段可能有长或双值。 如何使ElasticSearch强制将长整型值加倍,以便在插入新文档时不会发生冲突?
例如,如果值是5,我希望ES将它强制为5.0,以便我可以在之后插入12.3。
是否有某种动态索引模板可以应用于插入时自动进行转换?
感谢您的帮助。
您可以在映射中简单地将该字段的类型设置为double
并执行该作业。任何你会进入该领域的东西都会被强制转化为双倍。
curl -XPUT localhost:9200/index -d '{
"mappings": {
"type": {
"properties": {
"myfield": {
"type": "double"
}
}
}
}
}'
你需要做的,在指数/映射创建时间,否则映射创建后不能更改类型。
UPDATE
您还可以利用dynamic mapping templates这样的:
PUT my_index
{
"mappings": {
"my_type": {
"dynamic_templates": [
{
"doubles": {
"match_mapping_type": "long",
"mapping": {
"type": "double"
}
}
}
]
}
}
}
我想比这对于领域更敏捷。通过动态索引模板可以做到这一点? –
我已经更新了我的答案 – Val