我正在尝试将弹性搜索群集从1.x升级到6.x.我正在将远程1.x索引重新索引到6.x群集中。根据{{3}},这是可能的:
要升级Elasticsearch 1.x群集,您有两种选择:
执行完整集群重启升级到Elasticsearch 2.4.x并重新索引或删除1.x索引。然后,执行完全集群重新启动升级到5.6并重新索引或删除2.x索引。最后,执行滚动升级到6.x.有关从1.x升级到2.4的更多信息,请参阅Elasticsearch 2.4参考中的升级Elasticsearch。有关从2.4升级到5.6的更多信息,请参阅Elasticsearch 5.6参考中的升级Elasticsearch。
创建新的6.x群集并从远程重新索引以直接从1.x群集导入索引。
我正在本地进行测试,并使用以下命令运行6.x:
curl --request POST localhost:9200/_reindex -d @reindex.json
我的reindex.json文件如下所示:
{
"source": {
"remote": {
"host": "http://localhost:9200"
},
"index": "some_index_name",
"query": {
"match": {
"test": "data"
}
}
},
"dest": {
"index": "some_index_name"
}
}
但是,这会返回以下错误:
uri [/ _reindex]和方法[GET]的HTTP方法不正确,允许:[POST]“
为什么告诉我我不能使用GET而是使用POST?我在这里明确指定了一个POST请求,但它似乎认为这是一个GET请求。知道为什么它会收到错误的请求类型吗?
答案 0 :(得分:0)
我遇到了同样的问题,但通过在PUT请求中添加设置就可以了。
PUT /my_blog
{
"settings" : {
"number_of_shards" : 1
},
"mapping": {
"post": {
"properties": {
"user_id": {
"type": "integer"
},
"post_text": {
"type": "string"
},
"post_date": {
"type": "date"
}
}
}
}
}
你也可以参考这个 - https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html