Solr6新特性【升级须知】

一.概述

在开始迁移您的配置和索引之前,Solr6 中有一些重大的改变需要考虑。

有很多的更改,因此,对 Solr 升级注释部分以及 Solr 实例中的 CHANGES.txt 文件进行彻底的检查将有助于您计划向 Solr6 的迁移。

二.Solr6 中新特性的亮点

1.Streaming 表达式
在 Solr5 中引入的 Streaming 表达式允许查询 Solr 并将结果作为数据流进行排序和聚合。
Solr6 中添加了几种新的表达式类型:

  • 使用类似 MapReduce 的并行表达式来加快 high-cardinality 字段的吞吐量。
  • 守护程序表达式以支持持续推送或拉取流。
  • 高级并行关系代数,如分布式连接、交集、联合和补充。
  • 发布/订阅消息。
  • 用于从其他系统中提取数据并与 Solr 索引中的文档联接的 JDBC 连接。

2.并行 SQL 接口
构建在 Streaming 表达式的基础上,Solr6 中的新增功能是一个并行 SQL 接口,可以将 SQL 查询发送到 Solr。SQL 语句被即时编译为 Streaming 表达式,提供可用于 Streaming 表达式请求的全部聚合。包含一个 JDBC 驱动程序,它允许使用 SQL 客户端和数据库可视化工具查询您的 Solr 索引并将数据导入到其他系统。

3.跨数据中心复制
跨数据中心复制现在可以跨数据中心进行复制。使用主动 - 被动模型,SolrCloud 集群可以被复制到另一个数据中心,并用一个新的 API 进行监控。

4.QueryParser 图
一个新的图形查询解析器可以使用 Solr 文档建模的定向(循环)图的遍历查询成为可能。

5.DocValues
在 Solr 示例配置集中的大多数非文本字段类型现在默认为使用 DocValues。

6.需要使用 Java8
Solr6(和 SolrJ 客户端库)的 Java 最低支持版本现在是 Java8。

7.索引格式更改
Solr6 不支持读取 Lucene / Solr 4.x 和更早版本的索引。如果您的索引中仍然有旧的 4x 格式的段,请务必运行 Solr 5.5 附带的 Lucene IndexUpgrader。另外:使用 Solr 5.5 充分优化您的索引,以确保它只包含一个最新的索引段。

8.托管模式现在是默认的
当 solrconfig.xml 没有明确定义 的时候,Solr 的默认行为现在依赖于 solrconfig.xml 定义的 luceneMatchVersion。当 luceneMatchVersion < 6.0 时,ClassicIndexSchemaFactory 将继续用于后向兼容,否则将使用 ManagedIndexSchemaFactory 的实例。

这种变化最显著的影响是:

  • 现有的 solrconfig.xml 文件被修改为使用 luceneMatchVersion >= 6.0,但没有明确配置 ClassicIndexSchemaFactory,将其 schema.xml 文件自动升级到managed-schema 文件。
  • 现在将默认启用通过 Schema API 进行的模式修改。

9.默认的相似性改变
当 Schema 没有明确地定义全局 时,Solr 的默认行为将依赖于 solrconfig. xml 中指定的 luceneMatchVersion。当 luceneMatchVersion < 6.0 时,将使用 ClassicSimilarityFactory 的实例,否则将使用 SchemaSimilarityFactory 的实例。最值得注意的是,这种改变意味着用户可以利用每个字段类型的相似性声明,并且需要明确声明 SchemaSimilarityFactory 的全局用法。

无论是明确声明还是作为隐式全局默认值使用,当字段类型不声明明确 时,SchemaSimilarityFactory 的隐式行为也被更改为依赖于 luceneMatchVersion。当 luceneMatchVersion < 6.0 时,将使用 ClassicSimilarity 的实例,否则将使用 BM25Similarity 的实例。可以在 SchemaSimilarityFactory 声明中指定 defaultSimFromFieldType init 选项来更改此行为。

10.副本和碎片删除命令更改
DELETESHARD 和 DELETEREPLICA 现在默认为删除任何复制副本的实例目录、数据目录和索引目录。如果希望在使用这些命令时保留磁盘上的所有数据,请查看Collection API 文档以获取有关新请求参数的详细信息。

11.facet.date参数已删除
在 Solr3.x 中被弃用的 facet.date 参数(和相关 facet.date.* 参数)已被完全删除。如果您尚未切换到使用等效的 facet.range 功能,则必须在升级之前立即执行此操作。

三.早期的 6.x 版本的主要变化

以下对早期 Solr 6.x 版本中的更改的摘要突出显示了在 6.0 和 6.6 之间发布的重大更改。如上所述,在 Solr 7 中提到弃用可能会被取消。
请再次注意,这并不是可能影响安装的所有更改的完整列表,因此如果从早于 6.6 的任何版本升级,强烈建议查看 CHANGES.txt。

  • Solr 的贡献:map-reduce、morphlines-core 和 morphlines-cell 已被删除。

  • JSON Facet API 现在使用超级日志记录进行 numBuckets 基数计算,并在将存储区过滤之前计算 mincount 大于1的基数。

  • 如果使用历史日期,特别是 1582 年或之前的日期,则应该重新编制索引,以便更好地处理日期。

  • 如果使用 method=stream 的 JSON Facet API(json.facet),现在必须设置 sort=‘index asc’ 以获取流式传输行为;否则不会流出。提醒:method 是一个提示,不会改变其他参数的默认值。

  • 如果使用 JSON Facet API(json.facet)来面向数字字段,并且如果使用 mincount=0 或者如果设置了前缀,那么现在将出现错误,因为这些选项与数字分面不兼容。

  • Solr 在 INFO 级别的日志记录详细程度已大大降低,可能需要更新日志配置以使用 DEBUG 级别来查看以前在 INFO 级别上查看的所有日志记录消息。

  • 不再支持 solr.log 和 solr_gc.log 文件在时间戳的副本。如果依赖于 “日志” 文件夹中的 solr_log_date 或 solr_gc_log_date,将不再是这种情况。

  • MiniSolrCloudCluster 中的 create / deleteCollection 方法已被弃用。用户应该使用 CollectionAdminRequest API。此外,MiniSolrCloudCluster.uploadConfigDir(File, String)已被弃用,以支持 uploadConfigSet(Path, String)。

  • 默认情况下,bin/solr.in.sh(Windows 上为 bin/solr.in.cmd)已完全注释。以前,情况并非如此,它具有掩盖现有环境变量的作用。

  • version 字段不再被编入索引,现在 indexed=false 默认定义,因为该字段已启用 DocValues。

  • export 处理程序已被更改,因此它不再返回原始文档中不存在的数值字段的零 (0)。这种改变的一个后果是,你必须知道,如果原始文档中没有任何元组,那么一些元组将没有值。

  • org.apache.solr.util.stats 中与度量相关的类已被删除,转而支持 Dropwizard 度量库。任何使用这些类的自定义插件都应该更改为使用度量库中的等效类。作为其中的一部分,对监督状态 API 的输出进行了以下更改:

    • “totalTime” 指标已被删除,因为它不再受支持。
    • 监督状态 API 中的度量标准:“75thPctlRequestTime”、“95thPctlRequestTime”、“99thPctlRequestTime” 和 “999thPctlRequestTime” 已被重命名为:“75thPcRequestTime”、“95thPcRequestTime” 等,以与 Solr 的其他部分输出的统计信息保持一致。
    • “avgRequestsPerMinute”、“5minRateRequestsPerMinute” 和 “15minRateRequestsPerMinute” 的度量标准被相应的每秒速率 viz 替代,“avgRequestsPerSecond”、“5minRateRequestsPerSecond” 和 “15minRateRequestsPerSecond” 与 Solr其他部分输出的统计信息保持一致。
  • 新增了 UnifiedHighlighter。建议通过设置 hl.method=unified 和报告反馈来尝试 UnifiedHighlighter。这将很有效率并且更快。hl.useFastVectorHighlighter现在被认为是代替 hl.method=fastVector。

  • maxWarmingSearchers 参数现在默认为1,而更重要的是,如果超出此限制而不是引发异常 ,现在就会阻止它的提交。因此,在重叠提交中不再存在风险。尽管如此,用户应该继续避免过多的提交。建议用户从其 solrconfig. xml 文件中删除任何预先存在的 maxWarmingSearchers 条目。

  • 复杂的短语查询分析器现在支持领先的通配符。注意其可能的沉重程度,鼓励用户在索引时间分析中使用 ReversedWildcardFilter。

  • JMX 度量标准 “avgTimePerRequest”(以及每个处理程序的度量 API 中的相应度量)过去是基于总累计时间和请求数的简单 non-decaying 平均值。Codahale度量标准的实现对这个值应用了指数衰减,这个值在最后5分钟内严重偏离了平均值。

  • 并行 SQL 现在使用 Apache Calcite 作为其 SQL 框架。作为此更改的一部分,默认聚合模式已更改为 facet 而不是 map_reduce。对 SQL 聚合响应和一些 SQL语法更改也进行了更改。

你可能感兴趣的:(Solr,搜索引擎,大数据,solr)