从 elasticsearch 5.1 查询时出现异常
Getting exception while querying from elasticsearch 5.1
之前我用的是elasticsearch 2.2,现在升级到elasticsearch 5.1,下面是获取transport-client对象的代码,但是遇到了问题。
Settings settings = Settings.builder().put("cluster.name",
elasticConfiguration.getProperty("cluster.name", "elasticsearch")).
put("client.transport.sniff", true).
build();
TransportClient client = new PreBuiltTransportClient(settings);
for(InetSocketTransportAddress address:nodes){
(client).addTransportAddress(address);
}
SearchResponse response = null;
try {
LOG.debug("search query "+queryBuilder);
response = client.prepareSearch(CampaignRepository.INDEX_NAME)
.setTypes(getTypeName()).setQuery(queryBuilder).execute()
.get();
} catch (InterruptedException | ExecutionException e) {
LOG.error("Error searching result for " + queryBuilder
+ " Error message " + e.getMessage());
// e.printStackTrace();
throw new CampaignSystemException();
}
但是它给我一个错误,
java.util.concurrent.ExecutionException: SendRequestTransportException[[dHFgT6l][10.10.2.231:9300][indices:data/read/search]]; nested: IOException[can not write type [class com.seamless.ers.campaignsystem.api.model.campaign.CampaignState]];
其中 CampaignState 是一个枚举
请帮忙!!
经过一些研发,发现 elasticsearch 存在一个错误。在 ES 2.2 中,它用于接受枚举并将其转换为字符串,但在 5.1 中没有发生同样的事情,这可能会在即将发布的版本中得到修复
之前我用的是elasticsearch 2.2,现在升级到elasticsearch 5.1,下面是获取transport-client对象的代码,但是遇到了问题。
Settings settings = Settings.builder().put("cluster.name",
elasticConfiguration.getProperty("cluster.name", "elasticsearch")).
put("client.transport.sniff", true).
build();
TransportClient client = new PreBuiltTransportClient(settings);
for(InetSocketTransportAddress address:nodes){
(client).addTransportAddress(address);
}
SearchResponse response = null;
try {
LOG.debug("search query "+queryBuilder);
response = client.prepareSearch(CampaignRepository.INDEX_NAME)
.setTypes(getTypeName()).setQuery(queryBuilder).execute()
.get();
} catch (InterruptedException | ExecutionException e) {
LOG.error("Error searching result for " + queryBuilder
+ " Error message " + e.getMessage());
// e.printStackTrace();
throw new CampaignSystemException();
}
但是它给我一个错误,
java.util.concurrent.ExecutionException: SendRequestTransportException[[dHFgT6l][10.10.2.231:9300][indices:data/read/search]]; nested: IOException[can not write type [class com.seamless.ers.campaignsystem.api.model.campaign.CampaignState]];
其中 CampaignState 是一个枚举
请帮忙!!
经过一些研发,发现 elasticsearch 存在一个错误。在 ES 2.2 中,它用于接受枚举并将其转换为字符串,但在 5.1 中没有发生同样的事情,这可能会在即将发布的版本中得到修复