2016-04-26 1 views
0

J'essaie le cas le plus fondamental de se connecter à mon cluster ES, mais il semble que l'hôte me inscrire ne sont pas en cours d'enregistrement. Ce code est en cours d'exécution, je suis:ElasticSearch (java) - nœuds non configuré question

//Create the client 
Client client = new TransportClient(ImmutableSettings.builder() 
    .put("cluster.name", "MyCluster") 
    .put("client.transport.sniff","true").build()) 
    .addTransportAddresses(
     new InetSocketTransportAddress("host1", 9300), 
     new InetSocketTransportAddress("host2", 9300)); 

// Try to make a call 
SearchRequest sr = new SearchRequest().indices("MyIndex"); 
ActionFuture<SearchResponse> search = client.search(sr); 
SearchResponse actionGet = search.actionGet(); // <-- Exception 
System.out.println(actionGet.toString()); 

client.close(); 

Ceci est l'exception que je reçois:

Exception dans le thread "principal" org.elasticsearch.client.transport.NoNodeAvailableException:
Aucun des configuré nœuds sont disponibles: []

on dirait qu'il n'y a pas de noeuds connectés, ce que je manque?

NOTE: J'utilise le client de recherche élastique avec gradle:
compilation 'org.elasticsearch: ElasticSearch: 1.7.5'

+0

Est-ce votre cluster fonctionne correctement? Est-ce que les versions de votre client et serveur sont identiques/compatibles? – alpert

+1

Le cluster fonctionne correctement avec les appels REST. Et je pense avoir les mêmes versions, comment puis-je vérifier la version sur le serveur? –

+0

Il suffit de taper http 'curl -XGET »: // hôte: 9200'. Vérifiez également le nom du cluster. Vous – alpert

Répondre

2

Il y a quelques raisons possibles pour cela:

  • Les versions du client et du serveur peuvent être différentes
  • Le nom du cluster peut être différent
  • Il peut y avoir un problème de réseau lors de l'accès h ost et port.