对于我们的项目,我们使用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
版本不兼容。有人可以帮助我理解为什么创建的分片仍然不兼容,我如何创建兼容的旧版本分片?
答案 0 :(得分:0)
只需在分析器中设置版本,就不会对索引的格式做任何事情。所有这一切确保您使用熟悉的分析规则,它与此问题无关。
您需要使用适当的编解码器以旧格式编写索引。特别是Lucene410Codec
。您可以设置要在IndexWriterConfig
中使用的编解码器。向后编解码器主要用于读取旧索引,而不是编写它们。我不确定是否可以将它用于您的目的。
如果可能,我建议你只使用兼容的Lucene版本。要么升级你的Solr实例,要么只使用Lucene 4.10来完成这项工作。