适用于多种环境的SOLR配置



我是SOLR的新手,但我已经设置了SOLR云,并设置了一个核心"participant_dev"。我们有多种环境,即。,CI、开发、QA、UAT和产品

对于单核来说,配置足够简单。在Spring Boot应用程序yaml中添加solr服务器url,如所示

spring:
data:
solr:
host: server url

solr文档附有注释

@SolrDocument(solrCoreName = "participant_dev")
public class Solr Participant{
....
}

这是可行的,但现在的要求是,随着应用程序移动到不同的环境,我必须设置解决方案核心,如"participant_ci"、"participient_qa"、"participant_uat"等。你能建议如何根据环境更改solr核心名称吗。因此在CI中,

@SolrDocument(solrCoreName = "participant_ci")
public class Solr Participant{
....
}
In QA,
@SolrDocument(solrCoreName = "participant_qa")
public class Solr Participant{
....
}

您可以通过在Application类中创建solr客户端bean并删除@SolrDocument注释来进行设置。因此,默认集合将与指定的一样。

@Bean
public SolrClient solrClient()
{
CloudSolrClient client = new CloudSolrClient(env.getRequiredProperty("spring.data.solr.zk-host"));
client.setDefaultCollection("participant_"+env.getActiveProfiles()[0]);
return client;
}

另一种选择是创建自定义存储库,但这会添加很多不需要的代码。

最新更新