有这个映射:
curl -XPUT 'http://myip:9200/test?pretty' -d'
{
"mappings": {
"items": {
"dynamic": "strict",
"properties" : {
"title" : { "type": "string" },
"body" : { "type": "string" },
"publish_up" : { "type": "date",
"format" : "yyyy-MM-dd HH:mm:ss",
"copy_to": "publication_date"},
"publication_date" : { "type": "date",
"format" : "yyyy-MM-dd HH:mm:ss"},
}}}}'
我想将属性publication_date
更改为"store" : "yes"
,以便返回值using fields。这是我的尝试:
curl -X PUT 'http://myip:9200/test/_mapping/items?ignore_conflicts=true' -d '{
"items": {
"properties": {
"publication_date": {
"type": "date",
"format" : "yyyy-MM-dd HH:mm:ss",
"store" : "yes"
}}}}'
但是我收到了错误
{ “错误”:{ “ROOT_CAUSE”:[{ “类型”: “illegal_argument_exception”, “理由”:“映射器 for [publication_date]与其他映射中的现有映射冲突 类型:\ n [mapper [publication_date]有不同的[商店] 值]“}],”类型“:”illegal_argument_exception“,”reason“:”Mapper for [publication_date]与其他地图中的现有映射冲突 类型:\ n [mapper [publication_date]有不同的[商店] 值] “},” 状态“:400}
有任何帮助吗?提前谢谢。
PS:我正在使用ES 2.3
答案 0 :(得分:1)
您无法更改弹性的映射。 Afaik你必须使用新映射重新索引数据。
答案 1 :(得分:1)
将文档写入ES(ES 2以上版本)后,无法更新映射。
由于更改映射意味着使已编制索引的文档无效,因此您需要使用正确的映射创建新索引,并将数据重新索引到该索引中。