是否可以在弹簧数据弹性搜索中设置多个集群?

时间:2016-01-23 14:45:14

标签: grails elasticsearch spring-data spring-data-elasticsearch

我们有一个用例,我们希望在不同的集群中使用某些索引,以提高性能。 我们使用基于java的配置进行弹性搜索。

@Log4j
@Configuration
@EnableElasticsearchRepositories(basePackages = ["com.as.core.repositories"])
class ElasticSearchConfig {

@Bean
ElasticsearchOperations elasticsearchTemplate() {
    Client client
    Settings settings


    InetSocketTransportAddress inetSocketTransportAddress = new InetSocketTransportAddress(
            Holders.config.grails.elasticsearch.transportClientIP as String,
            Holders.config.grails.elasticsearch.transportClientPort as Integer
    )

        settings = ImmutableSettings.settingsBuilder()
                .put("cluster.name", "elasticsearch")
                .build()
        client = new TransportClient(settings)
                .addTransportAddress(inetSocketTransportAddress)



    return new ElasticsearchTemplate(client)
    }
}
  • 有什么方法可以添加不同弹性搜索群集的配置吗?
  • Spring数据自动在指定的集群中创建索引。如何在多集群应用程序中管理索引的创建?

我用Google搜索的是方法addTransportAddresses(inetSocketTransportAddress),它允许我们添加一组弹性搜索服务器地址。

  • 但是我们如何指定多个群集名称?

1 个答案:

答案 0 :(得分:1)

没有什么可以阻止您为不同的群集创建多个客户端。

在您的ElasticSearchConfig课程中,只需声明第二个方法elasticsearchTemplate2(),该方法会返回另一个ElasticsearchTemplate实例,将另一个Client嵌入另一个群集。

然后根据您需要创建索引的位置调用一种方法或另一种方法。