多环境的SOLR配置

时间:2016-05-27 13:36:03

标签: java solr solrcloud

我是SOLR的新手,但我已经设置了SOLR Cloud并设置了一个核心" participant_dev"。我们有多种环境,即CI,Dev,QA,UAT和Prod。

对于单核,配置很简单。在 Spring Boot 应用程序中,yaml像这样添加solr服务器URL

spring:
  data:
    solr:
      host: server url

solr文档注释

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

     ....
}

这有效,但现在要求是当应用程序移动到不同的环境时,我必须设置solr核心,例如' participant_ci',' participant_qa',' participant_uat'等等。您能否就如何根据环境更改solr核心名称提出建议。以便,     在CI中,

@SolrDocument(solrCoreName = "participant_ci")
public class Solr Participant{

     ....
}

In QA,

@SolrDocument(solrCoreName = "participant_qa")
public class Solr Participant{

     ....
}

1 个答案:

答案 0 :(得分:1)

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

from flask import url_for

class ProjectsView(object):
    def __init__(self, projectid):
        self.projectid = projectid
        ...

    def serialize(self):
        return {
            ...
            'tasks_url':url_for('.getListByProjectID', _external=True, projectid=self.projectid),
        }

class Projects(Resource):
    def get(self, userid):
        project_obj_list = []
        ...
        v = ProjectsView(project.id)
        project_obj_list.append(v)

    return jsonify(result=[e.serialize() for e in project_obj_list])

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