跨多个Solr 4.6内核的共享架构和配置

时间:2014-01-16 22:09:36

标签: solr configuration configuration-files solr4

我有很多站点,我使用Solr 4.6.0进行索引,我希望为每个站点维护单独的核心。每个核心将共享相同的schema.xml和相同的solrconfig.xml。理想情况下,我可以通过管理控制台创建新内核,Solr会选择我的默认核心配置。

目前,当我创建一个新核心时,我正在文件系统中创建一个名为“我希望核心”的新目录。我正在补充说:

  1. core.properties文件(只包含一个名称= myycorename属性。
  2. 包含通用schema.xml和solrconfig.xml文件副本的conf文件夹
  3. 我已尝试将以下内容放在core.properties文件中并进行相对引用:

    schema=../configs/template/schema.xml
    config=../configs/solrconfig.xml
    

    我也尝试过symlinking(不太理想,因为我希望在windows / osx / linux上运行。

    但Solr似乎不喜欢目录之外的相对引用。 Core Discovery 4.4 and Beyond

    中提到的configName属性

    是否可以在Solr中使用这种默认配置?

2 个答案:

答案 0 :(得分:5)

As of Solr 4.8,核心可以使用config sets来共享公共配置(即" solrconfig.xml"," schema.xml"等)多核。

您想将目录结构更改为:

./
├─ solr.xml
├─ configsets/
|  └─ template/
|     └─ conf/
|        ├─ schema.xml
|        ├─ solrconfig.xml
|        └─ ...
├─ core1/
|  ├─ core.properties
|  └─ data/
└─ core2/
   ├─ core.properties
   └─ data/

这定义了一个名为 template 的配置集。一切都将在核心" conf /"目录应该在配置集" conf /" 。目录

然后,在每个" core.properties"文件,设置 configSet 并省略架构配置

# core.properties
name=...
configSet=template

现在,使用模板配置集的核心将共享" schema.xml"," solrconfig.xml"等。

不幸的是,管理界面并不直接支持分配 configSet 属性。但是,如果您使用CoreAdmin API,则可以使用CREATE命令设置 configSet 。如,

http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&configSet=template

答案 1 :(得分:0)

创建新核心时,默认情况下它共享现有Solr实例的配置文件。但是您可以为新创建的核心提及不同的配置文件。请参阅http://wiki.apache.org/solr/CoreAdmin

config=different_solrconfig.xml&schema=different_schema.xml