2016-02-12 1 views
0

Je suis en train de me connecter à un cluster sur qbox le service d'hébergement et j'obtiens une erreur relative au chemin. Je ne sais pas comment spécifier l'API de point de terminaison. Quelqu'un a-t-il des idées?Elasticsearch et les connexions à QBOX Erreur

public Map<String, Object> putJsonDocument(int partid, String partnumber){ 
    Map<String, Object> jsonDocument = new HashMap<String, Object>(); 
    jsonDocument.put("partid", partid); 
    jsonDocument.put("partnumber", partnumber); 
    return jsonDocument; 
} 

public void ESUpdate() { 

    org.elasticsearch.node.Node node = org.elasticsearch.node.NodeBuilder.nodeBuilder().node(); 
    Client client = node.client(); 
    client.prepareIndex("soogrindex", "searchrow", "1") 
    .setSource(putJsonDocument(1, "test55")).execute().actionGet(); 

    } 



Exception in thread "main" java.lang.IllegalStateException: path.home is not configured 
at org.elasticsearch.env.Environment.<init>(Environment.java:101) 
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareEnvironment(InternalSettingsPreparer.java:81) 
at org.elasticsearch.node.Node.<init>(Node.java:128) 
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145) 
at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:152) 
at com.example.GetSoogrSitemap.ESUpdate(GetSoogrSitemap.java:708) 
at com.example.GetSoogrSitemap.main(GetSoogrSitemap.java:2056) 
+0

org.elasticsearch.node.NodeBuilder.nodeBuilder() .settings (Settings.builder() .put ("path.home" , "https: //...qb0x.com: 30950") .node(); –

Répondre

1

En utilisant NodeBuilder vous ne pouvez vous connecter à un serveur ElasticSearch en cours d'exécution sur le même hôte que votre programme. Il semble que vous essayez de vous connecter à un cluster sur QBox à partir de votre ordinateur portable ou d'un autre hôte ne se trouvant pas sur le même hôte QBox.

Vous devriez essayer de construire un lieu TransportClient, comme ceci:

Client client = TransportClient.builder().build() 
     .addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("your.qbox.host"), 9300)); 
+0

Exception dans le fil "principal" java.lang.NoSuchMethodError: com.google.common.util.concurrent.MoreExecutors.directExecutor() Ljava/util/concurrent/Executor; \t at org.elasticsearch.threadpool.ThreadPool. (ThreadPool.java:190) \t à org.elasticsearch.client.transport.TransportClient $ Builder.build (TransportClient.java:133) \t à com.example.GetSoogrSitemap.ESUpdate (GetSoogrSitemap.java:720) \t à com.example.GetSoogrSitemap.main (GetSoogrSitemap.java:2078) –

+0

Quelle version de ES utilisez-vous (côté serveur et côté client)? – Val

+0

qbox - 2.1.1 et le client 2.2.0 mais j'ai changé maintenant le client en 2.1.1 et toujours la même erreur. J'ai essayé aussi en utilisant des variations sur TransportClient mais la même erreur. –