1

我看到 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。这将创建一个新的索引文件夹。我删除了那个索引文件夹的内容,并复制了给我的索引文件夹的内容。

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

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

4

1 回答 1

2

您必须使用segments.gensegments_1从原始索引。请您的合作者也给您这些文件。但是由于您提到合作者给了您索引文件夹的副本,所以您必须已经拥有这些文件。

请注意,原始索引副本中可能没有必要segment_1存在。它可以是segment_N。无论segment_原始副本中有什么文件,都将其复制到新索引并重新启动码头。

segments.gen在索引中记录当前代(segments_N 中的 _N),以防万一文件的目录列表无法找到 segment_N 文件(例如在文件系统上,如 NFS,目录列表可能来自陈旧的缓存)

于 2013-06-23T12:01:03.810 回答