将solr 1.4索引升级到solr 3.3?

将solr 1.4索引升级到solr 3.3?,solr,indexing,luke,Solr,Indexing,Luke,我有一个使用ApacheSolr1.4的现有索引构建 我想在3.3版中使用这个现有索引。正如您所知,索引格式在3.x之后会发生更改,那么如何才能做到这一点呢 我已使用Luke将现有索引(即1.4版本)导出为XML。如果您有数据:最好的方法是为solr 3.3中的所有新数据编制索引 可以使用数据导入处理程序为导出的XML文件编制索引 如果建立新索引不是您的解决方案,您有不同的可能性: 据我所知,Solr3.3可以读取旧索引。 所以一个想法就是使用碎片。一个分片用于旧数据(只读),另一个分片用于新数

我有一个使用ApacheSolr1.4的现有索引构建

我想在3.3版中使用这个现有索引。正如您所知,索引格式在3.x之后会发生更改,那么如何才能做到这一点呢


我已使用Luke将现有索引(即1.4版本)导出为XML。

如果您有数据:最好的方法是为solr 3.3中的所有新数据编制索引 可以使用数据导入处理程序为导出的XML文件编制索引

如果建立新索引不是您的解决方案,您有不同的可能性:

据我所知,Solr3.3可以读取旧索引。
所以一个想法就是使用碎片。一个分片用于旧数据(只读),另一个分片用于新数据。不幸的是,在此解决方案中,您将无法修改旧数据。

有两种方法:

  • 如果您的索引未优化,则只需对其进行优化-这将在整个过程中升级文件格式

  • 如果索引已优化,则无法执行此操作。相反,请使用solr提供的命令行工具(您的路径可能与我的不同)

    java -cp work/Jetty_0_0_0_0_8983_solr.war__solr__k1kf17/webapp/WEB-INF/lib/lucene-core-3.3.0.jar org.apache.lucene.index.IndexUpgrader -verbose /path/to/index/directory
    
  • 但是,请注意,这只会更改文件格式—它不会停止弃用警告,因为除非您另有说明,否则solrconfig.xml默认情况下仍假定您使用的是旧的索引格式。请参阅

    您的日志文件中可能仍会有许多类似的行:

    WARNING: LowerCaseFilterFactory is using deprecated LUCENE_24 emulation. You should at some point declare and reindex to at least 3.0, because 2.x emulation is deprecated and will be removed in 4.0
    
    直到您告诉solrconfig.xml您已经准备好使用新索引格式的所有功能为止。您可以通过将以下内容添加到solrconfig.xml(在顶层,在abortOnConfigurationError设置之后)来完成此操作

    
    卢塞诺33
    
    1.我将旧schema.xml(1.4v)复制到新服务器(3.3)2.我将旧索引复制到3.3中的新索引目录并重新启动服务器,一切正常!奇怪的是,我在3.3发行说明中看到新索引结构与旧索引结构不兼容…无论如何,我很高兴一切正常:)“新的索引结构与旧的不兼容”…是的…我想,这是对的。但我认为,你的3.3系统运行在类似“兼容模式”的模式下“并且不使用新的索引格式。也许,你的索引仍然是1.4,这在lucene 4中是不受支持的-如果你考虑将来升级的话。你是对的,但是如何升级呢?这是我的主要问题。不确定,但如果你去3.x,更新意味着重新索引。我不确定solr4是否会提供迁移工具。
    <!-- Controls what version of Lucene various components of Solr
         adhere to.  Generally, you want to use the latest version to
         get all bug fixes and improvements. It is highly recommended
         that you fully re-index after changing this setting as it can
         affect both how text is indexed and queried.
      -->
    <luceneMatchVersion>LUCENE_33</luceneMatchVersion>