我有很多站点,我使用Solr 4.6.0进行索引,我希望为每个站点维护单独的核心。每个核心将共享相同的schema.xml和相同的solrconfig.xml。理想情况下,我可以通过管理控制台创建新内核,Solr会选择我的默认核心配置。
目前,当我创建一个新核心时,我正在文件系统中创建一个名为“我希望核心”的新目录。我正在补充说:
我已尝试将以下内容放在core.properties文件中并进行相对引用:
schema=../configs/template/schema.xml
config=../configs/solrconfig.xml
我也尝试过symlinking(不太理想,因为我希望在windows / osx / linux上运行。
但Solr似乎不喜欢目录之外的相对引用。 Core Discovery 4.4 and Beyond
中提到的configName属性是否可以在Solr中使用这种默认配置?
答案 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