我有几个每小时重新加载的外部文件字段。我的 solrconfig.xml 有
<dataDir>${solr.data.basedir}/${solr.core.name}</dataDir>
并且外部文件字段文件位于此目录下,例如external_*
. 使用 Solr 复制,我只能复制索引和配置文件。唯一的选择是在从站上单独重新加载这些文件,然后reloadCache
单独调用所有从站吗?或者 Solr 可以复制外部文件字段文件吗?
我有几个每小时重新加载的外部文件字段。我的 solrconfig.xml 有
<dataDir>${solr.data.basedir}/${solr.core.name}</dataDir>
并且外部文件字段文件位于此目录下,例如external_*
. 使用 Solr 复制,我只能复制索引和配置文件。唯一的选择是在从站上单独重新加载这些文件,然后reloadCache
单独调用所有从站吗?或者 Solr 可以复制外部文件字段文件吗?
Solr 不会自动复制 ext 文件字段文件,即使它们低于<dataDir>
solrconfig.xml 中指定的文件。要复制这些文件,我们需要confFiles
在 solrconfig 的复制处理程序中使用相对路径指定它们。
我的 Solr conf 目录(包含 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 指出的链接,由于我在 solrconfig.xml 中设置了侦听器,因此我可以在复制后在从属设备上重新加载 ext 文件字段,例如:
<listener event="newSearcher" class="org.apache.solr.schema.ExternalFileFieldReloader"/>
<listener event="firstSearcher" class="org.apache.solr.schema.ExternalFileFieldReloader"/>