2017-03-15 4 views
1

Zuvor war ich mit elasticsearch 2.2 und jetzt habe ich auf elasticsearch 5.1 aktualisiert und unten ist der Code zum Abrufen des Transport-Client-Objekt, sondern mit einem Problem konfrontiert.Erhalten Ausnahme bei der Abfrage von 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(); 
     } 

Aber es gibt mir einen Fehler,

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

wo CampaignState eine Enumeration ist

bitte helfen !!

Antwort

1

Nachdem Sie einige R & D, herausgefunden haben, gab es einen Bug mit elasticsearch. In ES 2.2 verwendet es enum und konvertiert es in String, aber in 5.1 passiert das Gleiche nicht und dies könnte in der kommenden Version

behoben werden
Verwandte Themen