elasticsearch _reindex失败

时间:2017-05-05 14:01:54

标签: amazon-web-services elasticsearch

我正在使用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不起作用

感谢

1 个答案:

答案 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