在 elasticsearch 中将字段类型从 'date' 更新为 'string'

Updating field type from 'date' to 'string' in elasticsearch

我是 Elasticsearch 的新手。我创建了一个包含几个子类型的索引。

{
"rkb_search_v3": {
    "mappings": {
        "event": {
            "properties": {
                "description": {
                    "type": "string"
                }
                "start_date": {
                    "type": "date",
                    "format": "dateOptionalTime"
                },
                "title": {
                    "type": "string"
                }
            }
        }
    }
}
}

我想将 start_date 类型更新为字符串,因为我无法搜索它,它给出了错误 [error] => SearchPhaseExecutionException[Failed to execute phase [query], all shards failed; shardFailures {[4VaJ1zHkSsOaYid7rz6Ciw][rkb_search_v3][0]: SearchParseException[[rkb_search_v3][0]: from[-1],size[100]

我正在尝试通过以下方法使用邮递员更新它

PUT localhost:9200/rkb_search_v3/_mapping/event

{
    "properties": {
        "start_date": {
            "type":   "string"
            }
        }
    }
}

但它没有更新。请帮忙

P.S.:事件类型中有数据索引。

您不能将字段从字符串更改为日期,因为它已经有数据,您需要重新索引所有数据。使用 ES 插件是实现这一目标的好方法。

http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/reindex.html