Lucene:Java版本迁移而无需重新编制索引

时间:2015-03-25 15:04:35

标签: solr lucene java-8 java-6

我最近遇到了一个问题,并希望听到有关此主题的任何想法。

前提条件:

  • Lucene实施版本:2.9.1
  • Solr:1.4
  • Java 6
  • 店内大而重的指数:)

主要想法:将JDK版本从1.6更改为1.8。

那么,这种变化是否需要重新索引索引或

我发现的第一件事是JRE_VERSION_MIGRATION文件。但它只说明了与Unicode版本和Java 1.4到Java 5转换相关的一个已知问题。   我没有在不同的JDK版本中找到任何其他已知的Unicode版本问题,这可以重新获得现有Lucene索引的完全重建索​​引。

另外,是否有人知道与JKD 1.6和JDK 1.7(1.8)中不同版本的Unicode相关的一些问题?

谢谢!

P.S。 此外,这是用于:

的所有分析器和过滤器的列表
  • WhitespaceTokenizerFactory
  • WordDelimiterFilterFactory
  • LowerCaseFilterFactory
  • SnowballPorterFilterFactory
  • RemoveDuplicatesTokenFilterFactory
  • ElisionFilterFactory
  • CJKTokenizerFactory
  • ThaiWordFilterFactory
  • ChineseSentenceTokenizerFactory
  • ChineseWordTokenFilterFactory

1 个答案:

答案 0 :(得分:0)

我怀疑你需要重新编制索引。 Unicode 6.1添加了可能被CJK分析器“看到”的符号:

CJK Compatibility Ideographs {F900..FAFF} : 2 characters (U+FA2E and U+FA2F)
CJK Unified Ideographs {4E00..9FFF} : 1 character (U+9FCC = Adobe-Japan1-6 CID+20156, a variant of U+6DBC 涼) 

其他变化在理论上甚至不会影响这些分析仪。

Unicode 6.2版本更简单,只有一个新角色

U+20BA  TURKISH LIRA SIGN    

我认为没有必要重新索引。上述标记符号依赖于不受上述更改影响的Character.isLetter()方法。我严重怀疑在变更中列出的任何字符都在索引中与之结合。