2012-08-25 33 views
10

我们使用培训服务器创建索引索引并通过rsync将它们上传到另一个(solr)服务器。Solr索引不可见

到现在为止,一切都很好。现在,我们在一个核心上的索引大小急剧增加,我们的solr实例拒绝读取那个核心上的索引。而且,他们没有任何例外地忽略这些索引。 (我们肯定被重新加载内核或重新启动后tomcatrsyncs

即:在solr statsnumDocs0/select?q=*:*没有返回任何结果..

只是为了回答这个问题,是这些索引损坏,我们已经再生了他们几次。但没有任何变化。当我们尝试使用较小的索引时,它们正在被正确读取。

我们在这个核心的solrconfig.xml是这样的; https://gist.github.com/983ebb13c895c9cccbfb

+0

你能分享你的卡塔利娜日志文件吗? – Evan

+0

嗨伊万,我们调查了日志文件。没有什么是指向一个错误。但是我们意识到我们的“细分”文件已损坏。这很可能与我们的培训师有关。 – xarion

+1

您是否尝试过使用内置复制? –

回答

2

使用rsync复制索引是坏主意。当您启动复制操作时,您的Solr服务器可能尚未完成将文件写入光盘,并且最终可能导致损坏。唯一安全的方法是关闭主站(源索引),关闭从站(目标索引),删除从站索引目录的全部内容,复制主站索引,然后重新启动所有内容。

更好的方法是上面的Peer Allan提出的 - 使用Solr的内置复制支持。见http://wiki.apache.org/solr/SolrReplication

+0

我同意,我们通过从文件复制解决方案切换到使用复制来解决了很多问题已经内置。 –