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

dif*_*ffa 5 configuration solr configuration-files solr4

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

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

  1. core.properties文件(只包含一个名称= myycorename属性.
  2. 包含通用schema.xml和solrconfig.xml文件副本的conf文件夹

我已经尝试将以下内容放在core.properties文件中并提升级别并相对引用:

schema=../configs/template/schema.xml
config=../configs/solrconfig.xml
Run Code Online (Sandbox Code Playgroud)

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

但Solr似乎不喜欢目录之外的相对引用.Core Discovery 4.4和Beyond中提到的configName属性

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

use*_*450 5

从Solr 4.8开始,内核可以使用配置集在多个内核之间共享通用配置(即"solrconfig.xml","schema.xml"等).

您想要将目录结构更改为:

./
?? solr.xml
?? configsets/
|  ?? template/
|     ?? conf/
|        ?? schema.xml
|        ?? solrconfig.xml
|        ?? ...
?? core1/
|  ?? core.properties
|  ?? data/
?? core2/
   ?? core.properties
   ?? data/
Run Code Online (Sandbox Code Playgroud)

这定义了一个名为template的配置集.核心"conf /"目录下的所有内容都应该位于配置集的"conf /"目录下.

然后,在每个"core.properties"文件中,设置configSet 并省略schemaconfig:

# core.properties
name=...
configSet=template
Run Code Online (Sandbox Code Playgroud)

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

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

http://localhost:8983/solr/admin/cores?action=CREATE&name=coreX&configSet=template
Run Code Online (Sandbox Code Playgroud)