我试图检查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);
elasticsearch6.2.1
任何帮助都非常感谢。
在高级REST客户端(可能从6.3版本开始)支持此功能之前,您可以通过使用低级REST客户端并向您的索引名称发出HEAD HTTP请求来实现此目的。
Response response = restClient.performRequest("HEAD", "/" + indexname); int statusCode = response.getStatusLine().getStatusCode(); if (statusCode == 404) { // index does not exist } else { // index exists }