簡體   English   中英

正確使用TransportClient進行Elasticsearch

[英]correct use of TransportClient for elasticsearch

我創建TransportClient bean進行彈性搜索時遇到問題,編譯器說構造函數是私有的,就是這樣。 我如何正確創建bean? 這是我的配置類:

import org.elasticsearch.client.Client;
import org.elasticsearch.client.transport.TransportClient;
import org.elasticsearch.common.transport.InetSocketTransportAddress;
import org.elasticsearch.common.transport.TransportAddress;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.elasticsearch.core.ElasticsearchOperations;
import org.springframework.data.elasticsearch.core.ElasticsearchTemplate;
import org.springframework.data.elasticsearch.repository.config.EnableElasticsearchRepositories;

@Configuration
@EnableElasticsearchRepositories(basePackages = "example.spring.data.es.repository")
@ComponentScan(basePackages = { "example.spring.data.es.service" })
public class Config {

@Bean
public Client client() {
//here compiller says that the TransportClient() is private. How else i cna create the transport client?
    TransportClient client = new TransportClient();

    TransportAddress address = new InetSocketTransportAddress(
            "localhost",9200);
    client.addTransportAddress(address);
    return client;
}

@Bean
public ElasticsearchOperations elasticsearchTemplate() {
    return new ElasticsearchTemplate(client());
}

}

彈性搜索依賴性為:elasticsearch-2.4.2

API已更改! 使用的版本要小心。

5.5版傳輸客戶端

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)

請注意,如果使用與“ elasticsearch”不同的名稱,則必須設置集群名稱:

Settings settings = Settings.builder().put("cluster.name", "myClusterName").build();
TransportClient client = new PreBuiltTransportClient(settings);

您需要使用提供的構建器方法進行初始化。 例:

TransportClient client = TransportClient.builder().build();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM