从 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 中没有发生同样的事情,这可能会在即将发布的版本中得到修复