不支持Lucene格式版本

时间:2016-08-31 15:12:17

标签: java solr lucene

对于我们的项目,我们使用Lucene 5.5.0库来创建Lucene分片,但是有一个ETL作业,我们需要创建Lucene 4.10.3分片,以便我们可以在{{1}中索引分片}。我想将Lucene版本保留为5.5.0,所以我试图通过API设置版本以更具体地执行此操作:

Solr cloud

但是当我尝试将生成的分片编入索引val analyzer = new KeywordAnalyzer() val luceneVersion = Version.parseLeniently(version) analyzer.setVersion(luceneVersion) 时,我收到以下错误消息:

  

错误创建SolrCore'ac_test2_shard2_replica1':无法创建核心[ac_test2_shard2_replica1]原因:不支持格式化版本(资源:BufferedChecksumIndexInput(segments_1)):6(需要介于0和3之间)

基于this post的原因是由于创建的Lucene版本与Solr cloud版本不兼容。有人可以帮助我理解为什么创建的分片仍然不兼容,我如何创建兼容的旧版本分片?

1 个答案:

答案 0 :(得分:0)

只需在分析器中设置版本,就不会对索引的格式做任何事情。所有这一切确保您使用熟悉的分析规则,它与此问题无关。

您需要使用适当的编解码器以旧格式编写索引。特别是Lucene410Codec。您可以设置要在IndexWriterConfig中使用的编解码器。向后编解码器主要用于读取旧索引,而不是编写它们。我不确定是否可以将它用于您的目的。

如果可能,我建议你只使用兼容的Lucene版本。要么升级你的Solr实例,要么只使用Lucene 4.10来完成这项工作。