在elasticsearch中将字段类型从“日期”更新为“字符串”

时间:2015-03-04 13:45:03

标签: codeigniter elasticsearch postman

我是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]

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

PUT localhost:9200/rkb_search_v3/_mapping/event

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

但它没有更新。请帮忙。

P.S.:Event类型中包含索引数据。

1 个答案:

答案 0 :(得分:1)

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

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