我们会定期更新客户的Solr版本。我们在Solr中创建了一个名为remote_shared_instance
的共享内核。一些客户使用此方法,而另一些则不使用。不使用核心的客户会看到有关remote_shared_instance
org.apache.solr.common.SolrException:org.apache.solr.common.SolrException:打开新的搜索器时出错
显示错误消息是因为这些客户通常没有重建索引,该索引是使用旧的Solr版本(3或更小版本)创建的。当前的Solr(5.5.5)无法处理此索引。
我正在使用Perl,我想创建一个程序来检查remote_shared_instance
索引是否为空。如果是这样,它将删除内核并重新启动Solr,Solr将自动创建新索引,并且错误消息将消失。
如何确定remote_shared_instance
索引为空?
我从一位收到错误消息的客户那里将文件打印在“索引”文件夹中:
-rw-rw---- 1 sfxglb41 sfx 32 Sep 10 2014 segments_1
-rw-rw---- 1 sfxglb41 sfx 20 Sep 10 2014 segments.gen
-rw-r----- 1 sfxglb41 sfx 0 Jun 13 04:42 write.lock
答案 0 :(得分:2)
我猜你想在不真正读取索引的情况下这样做吗?
如果索引仅包含段文件(一个segments.gen和一个或多个segments_N)和一个write.lock,则为空。包含文档的索引将具有其他文件(通常,具有数据的索引通常将具有至少一个.cfs或.fdx文件),其中将包含已索引的数据。