elasticsearch何时尝试恢复其索引?

时间:2016-11-15 05:22:00

标签: elasticsearch

我正在尝试修复与我们生产中的Elasticsearch相关的问题,这个问题总是无法重现。我正在使用Elasticsearch 1.5(尚未升级)。

问题在于,在尝试创建索引时,我遇到异常IndexAlreadyExistsException的错误,因为调用

client.admin().indices().prepareExists(index).get().isExists();

在Elasticsearch处于恢复模式时返回false,然后当我尝试创建索引时,我得到了该异常。

以下几个链接指出Elasticsearch在恢复索引时返回false的问题。

8945 8105

由于我无法重现问题,因此我无法在检查isExists()之前测试我的修复方法,即检查健康状况。

我的问题是Elasticsearch什么时候开始恢复?

1 个答案:

答案 0 :(得分:0)

您可以使用prepareHealth() admin方法在执行索引维护操作之前等待群集达到给定状态:

ClusterHealthResponse health = client.admin().cluster().prepareHealth(index)   
    .setWaitForGreenStatus()                    
    .get();

或者您也可以等待整个群集变绿:

ClusterHealthResponse health = client.admin().cluster().prepareHealth()   
    .setWaitForGreenStatus()                    
    .get();