我在弹性搜索中为对象创建了错误的映射。有没有办法更新映射。对于对象的类型(String而不是double)错误地创建了映射。
答案 0 :(得分:1)
通常,无法更新现有字段的映射。这条规则有一些例外。例如:
new properties can be added to Object datatype fields.
new multi-fields can be added to existing fields.
doc_values can be disabled, but not enabled.
the ignore_above parameter can be updated.
来源:https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-put-mapping.html
答案 1 :(得分:0)
通过PUT
现有的here are some examples上的新映射,完全有可能。
请注意,在完成此操作后,您可能需要重新索引所有数据,因为我不认为ES可以将字符串索引转换为双索引。 (相反的是,当您在该字段中搜索时,您将找不到任何文档)
答案 2 :(得分:0)
PUT映射API允许您在现有索引中添加/修改数据类型。
PUT /assets/asset/_mapping
{
"properties": {
"common_attributes.asset_id": {
"type": "text",
"fields": {
"keyword": {
"type": "keyword",
"doc_values": true,
"normalizer": "lowercase_normalizer"
}
}
},
}
}
更新映射后,使用批量更新API更新现有文档。
POST /_bulk
{"update":{"_id":"59519","_type":"asset","_index":"assets"}}
{"doc":{"facility_id":491},"detect_noop":false}
注意-使用'detect_noop'检测noop更新。