我正在使用AWS Elasticsearch。它不允许打开/关闭索引,因此无法在索引上应用设置更改。
为了更改索引的设置,我必须使用新设置创建一个新索引,然后将旧索引中的数据移动到新索引中。
所以首先我用
创建了一个新索引PUT new_index
{
"settings": {
"max_result_window":3000000,
"analysis": {
"filter": {
"german_stop": {
"type": "stop",
"stopwords": "_german_"
},
"german_keywords": {
"type": "keyword_marker",
"keywords": ["whatever"]
},
"german_stemmer": {
"type": "stemmer",
"language": "light_german"
}
},
"analyzer": {
"my_german_analyzer": {
"tokenizer": "standard",
"filter": [
"lowercase",
"german_stop",
"german_keywords",
"german_normalization",
"german_stemmer"
]
}
}
}
}
}
它成功了。然后我尝试使用查询将旧索引中的数据移动到新索引中:
POST _reindex
{
"source": {
"index": "old_index"
},
"dest": {
"index": "new_index"
}
}
失败了
Request failed to get to the server (status code: 504)
我用_cat api检查了索引,它给出了
health status index uuid pri rep docs.count docs.deleted store.size pri.store.size
yellow open old_index AGj8WN_RRvOwrajKhDrbPw 5 1 2256482 767034 7.8gb 7.8gb
yellow open new_index WnGZ3GsUSR-WLKggp7Brjg 5 1 52000 0 110.2mb 110.2mb
似乎有些数据被加载到那里,只是想知道为什么_reindex不起作用
感谢
答案 0 :(得分:1)
您可以使用api检查reindex的状态:
GET _tasks?detailed=true&actions=*reindex
有一个"状态"响应中的对象,其中包含字段" total":
total是reindex期望执行的操作总数。您可以通过添加更新,创建和删除的字段来估计进度。当它们的总和等于总字段时,请求将结束。
链接到ES文档:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html