solr - Lucene:无需重新索引即可迁移 Java 版本

标签 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 相关的一些问题吗?

    谢谢!

    附言
    此外,这是用于以下用途的所有分析器和过滤器的列表:
  • WhitespaceTokenizerFactory
  • WordDelimiterFilterFactory
  • 小写过滤器工厂
  • SnowballPorterFilterFactory
  • RemoveDuplicatesTokenFilterFactory
  • ElisionFilterFactory
  • CJKTokenizerFactory
  • ThaiWordFilterFactory
  • ChineseSentenceTokenizerFactory
  • ChineseWordTokenFilterFactory
  • 最佳答案

    我怀疑您是否需要重新编制索引。
    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()不受上述变化影响的方法。我严重怀疑更改中列出的任何字符都在索引中。

    关于solr - Lucene:无需重新索引即可迁移 Java 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29259324/

    相关文章:

    java-8 - Java8划分日期而没有时间

    solr - 在SOLR中创建嵌套文档的索引

    mysql - 将 Solr 与 MySQL 结合使用

    python - 在 readthedocs.org 的本地实例上设置 Apache Solr

    c# - 如何为 lucene 添加多个 AND bool 查询

    search - 使用 Solr 实现搜索所有内容

    java - 如何在 Java 8 Stream API 中编写此循环

    linux - Apache Nutch 和 Solr 集成

    java - Bit Set 真的比 Sorted Set 操作更快吗?

    java - Linux 上 Android Studio 的 JDK 路径