我们已经配置了一个 Solr 服务器,我们提供从数据库中提取的数据,并将其配置为主服务器。这个master使用复制机制向其他一些slave提供数据,配置如下:
<requestHandler name="/replication" class="solr.ReplicationHandler" >
<lst name="master">
<str name="replicateAfter">startup</str>
<str name="replicateAfter">commit</str>
<str name="commitReserveDuration">00:00:10</str>
</lst>
<str name="maxNumberOfBackups">1</str>
</requestHandler>
奇怪的是,运行这个 solr 实例的 java 进程持有对已删除文件的引用。如果lsof
完成,我可以看到:
java 17564 solr_master 44r REG 253,2 4229809586 705005 /var/solr_master/data/index/_aegu.fdt (deleted)
java 17564 solr_master 45r REG 253,2 4229809586 705005 /var/solr_master/data/index/_aegu.fdt (deleted)
java 17564 solr_master 49r REG 253,2 17686596 705138 /var/solr_master/data/index/_ahjh.fdt (deleted)
java 17564 solr_master 51r REG 253,2 4229809586 705005 /var/solr_master/data/index/_aegu.fdt (deleted)
索引不断更新,从属服务器每 20 秒检查一次复制。
提交没有显式完成,它使用如下配置的自动提交:
<autoCommit>
<maxTime>15000</maxTime>
<openSearcher>false</openSearcher>
</autoCommit>
有没有人看到我做错了什么,或者有人面临同样的问题,在这种情况下,解决方案是什么?
我正在使用LUCENE_40
,这可能与 Lucene 中的某些错误有关吗?
我已经查看了 Solr 错误列表,但我没有找到任何东西。在当前的结构中升级并不是那么容易,我希望这只是一个错误的配置。