2013-06-22 24 views
1

我看到3年前有类似的问题,但我认为可以复制为1)现有q为3岁,2)我有不同的问题和不同版本的Solr。如何使用现有内核的数据设置新的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)是用最初的Index文件夹创建的。我尝试将这些文件保留在索引文件夹中,但替换其他所有文件。现在Solr似乎正在工作(浏览器界面正在工作),但它报告“Num文档:0”和*:*查询给我0结果。

任何人有任何想法?我很高兴提供更多信息。提前致谢。

回答

1

你必须使用segments.gensegments_1从原来的指数。请你协作者也给你这些文件。但是既然你提到合作者给你一个索引文件夹的副本,所以你必须已经拥有这些文件。

请注意,segment_1可能不需要存在于您的原始索引副本中。它可以是segment_N。不管segment_文件在原始副本中,将其复制到新索引并重新启动jetty。

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

+0

好吧,这是很有道理的,这是我读了段文件后,我想的。我的合作者坚持说他给了我整个索引文件夹,所以我们只需要在同一页面上。无论如何,谢谢你确认我的怀疑。 – ACPrice

+0

顺便说一句,只是仔细检查:1)有没有办法产生一个新的segments_N文件,将工作? 2)我的合作者没有办法可以在没有segments_N文件的情况下运行Solr核心吗?提前致谢! – ACPrice

+0

阅读此http://lucene.apache.org/core/3_0_3/fileformats.html#Segments%20File – AnonGeek