我有几个外部文件字段每小时重新加载一次。我的solrconfig.xml有
<dataDir>${solr.data.basedir}/${solr.core.name}</dataDir>
,外部文件字段文件位于此目录下,如external_*
。使用Solr复制,我只能复制索引和配置文件。唯一的选择是在从站上单独重新加载这些文件,然后分别在所有从站上调用reloadCache
吗?或者Solr可以复制外部文件字段文件吗?
答案 0 :(得分:2)
Solr能够replicate the configuration files和索引 复制文件后,Solr核心将在从站上重新加载,无需手动完成。
编辑: -
外部文件的位置是要复制的数据文件夹。
还要重新加载外部文件,请检查link
答案 1 :(得分:2)
Solr不会自动复制ext文件字段文件,即使它们位于solrconfig.xml中指定的<dataDir>
之下。要复制这些文件,我们需要在solrconfig中的复制处理程序中使用相对路径在confFiles
下指定它们。
我的Solr conf dir(包含solrconfig.xml,synonyms.txt等)位于:
/var/solr/application-cores/List/conf
和包含ext文件字段文件的数据目录位于:
/var/solr-data/List
所以我的confFiles看起来像:
<str name="confFiles">solrconfig.xml,data-config.xml,schema.xml,stopwords.txt,synonyms.txt,elevate.xml,../../../../solr-data/List/external_eff_views</str>
不允许使用通配符,因此我必须单独指定每个ext文件字段文件: - (。
感谢@Jayendra指出的link,我可以在复制后在slave上重新加载ext文件字段,因为我在solrconfig.xml中设置了监听器,如:
<listener event="newSearcher" class="org.apache.solr.schema.ExternalFileFieldReloader"/>
<listener event="firstSearcher" class="org.apache.solr.schema.ExternalFileFieldReloader"/>