2017-03-15 6 views
1

以前はelasticsearch 2.2を使用していましたが、今度はelasticsearch 5.1にアップグレードしました。トランスポートクライアントオブジェクトを取得するためのコードはありますが、問題に直面しています。elasticsearchからクエリを実行中に例外が発生する5.1

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(); 
     } 

しかし、それは私にエラーを与え、

CampaignStateがenum

ある

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]]; 

助けてください!

答えて

1

R & Dを実行した後、elasticsearchにバグがあることが判明しました。 ES 2.2ではenumを受け入れてStringに変換しますが、5.1では同じことは起こらず、これは今後のバージョンで修正される可能性があります

関連する問題