2016-02-12 53 views
0

我想連接到qbox託管服務上的集羣,我得到一個與路徑有關的錯誤。我不確定如何指定端點API。有沒有人有任何想法?Elasticsearch和連接到QBOX錯誤

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() 。把( 「path.home」 ,「https://...qb0x.com:30950」) .node(); –

回答

1

使用NodeBuilder您只能連接到與程序運行在同一主機上的Elasticsearch服務器。看起來你試圖從你的筆記本電腦或不在同一個QBox主機上的另一臺主機連接到QBox上的集羣。

你應該嘗試建立一個TransportClient代替,就像這樣:

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

線程「main」中的異常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

您使用的是什麼版本的ES(服務器端和客戶端)? – Val

+0

qbox - 2.1.1和客戶端2.2.0但我現在將客戶端更改爲2.1.1,仍然是相同的錯誤。我也嘗試使用TransportClient上的變體,但同樣的錯誤。 –