根据this article:
可以使用更新映射API在实时索引上更改字段数据格式(以及一般的字段数据设置)。
但是当我尝试时:
curl -XPUT 'http://es1:123/my_index/my_type/_mapping' -d '
{
"my_type": {
"properties": {
"my_prop": {
"index": "not_analyzed",
"fielddata": {
"format": "doc_values"
},
"type": "string",
"fields": {
"hash": {
"type": "murmur3"
}
}
}
}
}
}
我明白了:
MergeMappingException[Merge failed with failures {[mapper [my_prop] has different doc_values values]}]
有什么想法吗?
答案 0 :(得分:0)
您需要为索引重新创建映射并重新索引其中的所有文档。
您没有为该字段启用doc_values
:"doc_values": true
。但是您希望fielddata格式为doc_values
。这是不可能的。
为了能够将fielddata格式从格式更改为 doc_values
,反之亦然,您需要启用doc_values:"doc_values": true
。但请注意,即使未启用doc_values,您也可以自由更改任何内存中的格式,这意味着可以从fst
到paged_bytes
进行任何操作,反之亦然。