繁体   English   中英

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

[英]Shared schema and configuration across multiple Solr 4.6 cores

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

当前,当我创建一个新的核心时,我正在文件系统中创建一个新目录,命名为我想要的核心。 然后,我要补充一点:

  1. 一个core.properties文件(仅包含一个name = myycorename属性。
  2. conf文件夹,其中包含通用schema.xml和solrconfig.xml文件的副本

我尝试将以下内容放入core.properties文件中,并进行相对引用:

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

我也尝试了符号链接(不理想,因为我希望它在Windows / OSX / Linux上运行。

但是Solr似乎不喜欢目录之外的相对引用。 Core Discovery 4.4及更高版本中提到的configName属性

Solr中是否可以具有这种默认配置?

从Solr 4.8开始 ,内核可以使用配置集在多个内核之间共享通用配置(即“ 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并省略schemaconfig

# 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

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

config=different_solrconfig.xml&schema=different_schema.xml

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM