use*_*650 5 rest exception elasticsearch
使用 Rest 高级客户端。在尝试创建一个已经存在的索引后,我们收到一个“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)
Run Code Online (Sandbox Code Playgroud)
现在我们需要知道异常的类型,在本例中为“resource_already_exists_exception”。我们正在这样做:
catch (ElasticsearchException ee) {
if (ee.getMessage().contains('resource_already_exists_exception')) {
do_things();
}
Run Code Online (Sandbox Code Playgroud)
}
这是使用 Rest 高级客户端获取异常类型的正确方法吗?只是对消息异常执行 indexOf 吗?还是有另一种“更清洁”的方法来做到这一点?
谢谢。
| 归档时间: |
|
| 查看次数: |
838 次 |
| 最近记录: |