ElasticSearch - 在现有索引上设置doc_values

时间:2015-06-10 11:16:38

标签: elasticsearch

根据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]}]

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

您需要为索引重新创建映射并重新索引其中的所有文档。

您没有为该字段启用doc_values"doc_values": true。但是您希望fielddata格式为doc_values。这是不可能的。

为了能够将fielddata格式从格式更改为 doc_values,反之亦然,您需要启用doc_values:"doc_values": true。但请注意,即使未启用doc_values,您也​​可以自由更改任何内存中的格式,这意味着可以从fstpaged_bytes进行任何操作,反之亦然。