从Solr5到Solr6的主要变化

2018-11-06 16:46 更新

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

有很多的更改,因此,对 Solr 升级注释部分以及 Solr 实例中的 CHANGES.txt 文件进行彻底的检查将有助于您计划向 Solr6 的迁移。本节将重点介绍您应该注意的一些主要更改。

Solr6 中新特性的亮点

Streaming 表达式

在 Solr5 中引入的 Streaming 表达式允许查询 Solr 并将结果作为数据流进行排序和聚合。

Solr6 中添加了几种新的表达式类型:

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

并行 SQL 接口

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

跨数据中心复制

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

QueryParser 图

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

DocValues

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

需要使用 Java8

Solr6(和 SolrJ 客户端库)的 Java 最低支持版本现在是 Java8。

索引格式更改

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

托管模式现在是默认的

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

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

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

默认的相似性改变

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

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

副本和碎片删除命令更改

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

facet.date.* 参数已删除

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

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号