Elasticsearch ловит исключения с клиентом Rest High-Level - PullRequest
0 голосов
/ 15 сентября 2018

Использование Rest High-Level Client.После попытки создать индекс, который уже существует, мы получаем «ElasticsearchStatusException», например:

[nscache/qgkpsKp4Sb2nluZTsxac5Q] ElasticsearchStatusException[Elasticsearch exception [type=resource_already_exists_exception, reason=index [nscache/qgkpsKp4Sb2nluZTsxac5Q] already exists]]
    at org.elasticsearch.rest.BytesRestResponse.errorFromXContent(BytesRestResponse.java:177)
    at org.elasticsearch.client.RestHighLevelClient.parseEntity(RestHighLevelClient.java:1406)
    at org.elasticsearch.client.RestHighLevelClient.parseResponseException(RestHighLevelClient.java:1382)
    at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1269)
    at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1231)
    at org.elasticsearch.client.IndicesClient.create(IndicesClient.java:151)
    at com.ventusproxy.proxy.cluster.elasticsearch.NonSearchableCacheIndex.<init>(NonSearchableCacheIndex.java:59)
    at com.ventusproxy.proxy.cache.data.impl.NonSearchableCache.<clinit>(NonSearchableCache.java:33)
    at com.ventusproxy.proxy.cache.data.CacheFacade.createCache(CacheFacade.java:73)
    at com.ventusproxy.proxy.cache.data.CacheFacade.initCaches(CacheFacade.java:59)

Теперь нам нужно узнать тип исключения, в данном случае «resource_already_exists_exception».Мы делаем это:

catch (ElasticsearchException ee) {
  if (ee.getMessage().contains('resource_already_exists_exception')) {
      do_things();
  }

}

Это правильный способ получить тип исключения с клиентом высокого уровня отдыха?Просто выполняете indexOf для исключения сообщения?Или есть другой "более чистый" способ сделать это?

спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...