如何在elasticsearch 6.2.1中找到索引?

时间:2018-02-22 12:07:00

标签: java elasticsearch indexing

我曾试图检查elasticsearch 6.2.1的RestHighLevelClient中是否存在索引

目前我正在使用以下代码

    try {

        OpenIndexRequest openIndexRequest = new OpenIndexRequest(indexName);
        client.indices().open(openIndexRequest, header).isAcknowledged();

    } catch (ElasticsearchStatusException ex) {
        String m = "Elasticsearch exception [type=index_not_found_exception, reason=no such index]";

        if (m.equals(ex.getMessage())) {
            //TODO In case index does not exists
        }
    }

它工作正常,但我想找到一些相关的方法,如

client.indices().exists(indexname);

弹性搜索6.2.1

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:3)

在高级REST客户端支持之前(可能从6.3开始),您可以通过使用低级REST客户端并发出HEAD HTTP request to your index name

来实现此目的。
Response response = restClient.performRequest("HEAD", "/" + indexname); 
int statusCode = response.getStatusLine().getStatusCode(); 
if (statusCode == 404) {
   // index does not exist
} else {
   // index exists
}