2017-07-07 74 views
1

當我使用Elasticsearch 1.7.2版本時,我的java代碼與tcp連接,並且效果很好,但是當我使用與Elasticsearch 5.4-3相同的代碼時,它沒有顯示ImmutableSettings的定義。如何在java中將彈性搜索5.4連接到tcp?

Client client = null; 
    try { 
     Settings settings = ImmutableSettings.settingsBuilder() 
       .put("client.transport.ignore_cluster_name", true) 
       .put("client.transport.sniff", false) 
       .build(); 
    System.out.print("true"); 
     client = new TransportClient(settings) 
     .addTransportAddress(new InetSocketTransportAddress("10.196.2.215", 9300)); 
} 

也有在Elasticsearch沒有TCP設置5.4-3 /配置/ elasticserch.yml文件

回答

2

還有,你在問題中指定的版本之間的重大變化。如果您想在5.4.3版本中成功創建連接,請參閱以下代碼片段。

import org.elasticsearch.action.get.GetResponse; 
import org.elasticsearch.client.transport.TransportClient; 
import org.elasticsearch.common.settings.Settings; 
import org.elasticsearch.common.transport.InetSocketTransportAddress; 
import org.elasticsearch.transport.client.PreBuiltTransportClient; 

import java.net.InetAddress; 
import java.net.UnknownHostException; 

public class ElasticSearchClientTest { 
    public void clientConnectionTest() throws UnknownHostException { 

     // Use any settings here (As you mentioned in the code) 
     Settings settings = Settings.builder() 
       .put("cluster.name", "elasticsearch") 
       .put("client.transport.sniff", true) 
       .put("sniffOnConnectionFault", true).build(); 

     TransportClient client = new PreBuiltTransportClient(settings); 

     // Change the ip address or the host name accordingly. 
     client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300)); 
    } 
} 

在pom.xml文件中使用以下依賴關係。

<dependency> 
    <groupId>org.elasticsearch</groupId> 
    <artifactId>elasticsearch</artifactId> 
    <version>5.4.3</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>org.elasticsearch.client</groupId> 
    <artifactId>transport</artifactId> 
    <version>5.4.3</version> 
</dependency> 
+0

感謝@Hiran的評論...我已經試過,但它gaves我下面主要‘因爲java.lang.UnsupportedClassVersionError例外「在線程異常’:組織/ elasticsearch /客戶/運輸/ TransportClient:不支持的主要.minor version 52.0「 – user2778724

+0

@ user2778724 - 這應該是maven錯誤,請從pom.xml文件中刪除所有其他elasticsearch依賴項並重試。 –

+0

@ user2778724 - 只保留我在答案中提到的elasticsearch依賴關係,刪除所有其他彈性搜索相關的依賴關係。 –