如何使用现有核心的数据设置新的Solr核心?

时间:2013-06-22 14:15:07

标签: database solr lucene jetty

我看到3年前有一个类似的问题,但我认为可以复制为1)现有的q是3岁2)我有不同的问题和不同版本的Solr。

这是故事。合作者给了我现有Solr核心的“索引”目录的副本。我试图在本地设置我自己的核心并使用该索引。现有核心来自Solr 4.1.0安装。 (我已经尝试并且失败了,设置了Solr 4.3.1和Solr 4.1.0。)我正在使用Jetty运行Solr。

你问的问题是什么?好吧,我将默认示例核心中的配置文件(schema.xml和solrconfig.xml)替换为我的协作者给我的。然后我运行Jetty。这将创建一个新的Index文件夹。我删除了该索引文件夹的内容,并复制了我给出的索引文件夹的内容。

结果是Solr给出了一个错误,指示无法找到“segment”文件。所以我注意到有两个文件(segments.gen和segments_1)是用初始的Index文件夹创建的。我尝试将它们留在Index文件夹中,但替换其他所有内容。现在Solr似乎正在工作(浏览器界面正在工作),但它报告“Num docs:0”和*:*查询给我0结果。

有人有什么想法吗?我很乐意提供更多信息。提前谢谢。

1 个答案:

答案 0 :(得分:1)

您必须使用原始索引中的segments.gensegments_1。请求合作者也给你这些文件。但是既然你提到合作者给你一份索引文件夹,那么你必须已经拥有这些文件。

请注意,原始索引副本中可能不需要segment_1。它可以是segment_N。无论原始副本中有segment_个文件,请将其复制到新索引并重新启动jetty。

segments.gen记录索引中的当前代(_N在segments_N中),作为回退,如果文件目录列表中的文件无法找到segments_N文件(例如在文件系统上,如NFS,目录列表可能来自过时的缓存)