Solr 6 的主要變更

在開始遷移您的設定和索引之前,需要考慮 Solr 6 中的一些重大變更。

有數百個變更,因此詳細檢閱Solr 升級注意事項章節以及 Solr 執行個體中的 CHANGES.txt 檔案,將有助於您規劃遷移至 Solr 6。本節嘗試強調您應該注意的一些主要變更。

Solr 6 中新功能的重點

Solr 6 中的一些主要改進包括

串流運算式

在 Solr 5 中導入的串流運算式,可讓您查詢 Solr 並取得結果作為資料串流,並依要求排序和彙總。

Solr 6 中新增了幾種新的運算式類型

  • 使用類似 MapReduce 的混洗的平行運算式,以更快地處理高基數字段。

  • 支援連續推送或拉取串流的守護程式運算式。

  • 進階平行關聯代數,如分散式聯結、交集、聯集和補集。

  • 發佈/訂閱訊息傳遞。

  • JDBC 連線以從其他系統提取資料,並與 Solr 索引中的文件聯結。

SQL 查詢

Solr 6 中的新功能是建立在串流運算式之上的SQL 支援,以便能夠將 SQL 查詢傳送至 Solr。SQL 陳述式會即時編譯為串流運算式,提供串流運算式請求可用的完整彙總範圍。隨附 JDBC 驅動程式,可讓您使用 SQL 用戶端和資料庫視覺化工具來查詢您的 Solr 索引,並將資料匯入其他系統。

跨資料中心複寫

現在可以使用跨資料中心複寫進行跨資料中心的複寫。使用主動-被動模型,SolrCloud 叢集可以複寫到另一個資料中心,並使用新的 API 進行監控。

圖形查詢剖析器

新的graph 查詢剖析器可讓您對使用 Solr 文件建模的有向(循環)圖形進行圖形遍歷查詢。

DocValues

Solr 範例設定檔中大多數的非文字欄位類型現在預設使用 DocValues

需要 Java 8

Solr 6 (以及 SolrJ 用戶端程式庫) 支援的最低 Java 版本現在是 Java 8。

索引格式變更

Solr 6 不支援讀取 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 的實例。

此變更最顯著的影響是:

  • 修改為使用 luceneMatchVersion >= 6.0,但沒有明確配置 ClassicIndexSchemaFactory 的現有 solrconfig.xml 檔案,其 schema.xml 檔案將會自動升級為 managed-schema 檔案。

  • 現在預設會啟用透過 Schema API 進行的架構修改。

請檢閱 架構工廠設定 章節以取得更多詳細資訊。

預設相似度變更

當架構沒有明確定義全域 <similarity/> 時,Solr 的預設行為現在取決於 solrconfig.xml 中指定的 luceneMatchVersion。當 luceneMatchVersion < 6.0 時,將使用 ClassicSimilarityFactory 的實例,否則將使用 SchemaSimilarityFactory 的實例。最值得注意的是,此變更表示使用者可以利用每個欄位類型相似度的宣告,而無需也明確宣告全域使用 SchemaSimilarityFactory

無論是明確宣告還是用作隱式全域預設,當欄位類型未宣告明確的 <similarity /> 時,SchemaSimilarityFactory 的隱式行為也已更改為取決於 luceneMatchVersion。當 luceneMatchVersion < 6.0 時,將使用 ClassicSimilarity 的實例,否則將使用 BM25Similarity 的實例。可以在 SchemaSimilarityFactory 宣告中指定 defaultSimFromFieldType 初始化選項來變更此行為。請檢閱 SchemaSimilarityFactory 的 Javadoc 以取得更多詳細資訊。

複本 & 分片刪除命令變更

DELETESHARD 和 DELETEREPLICA 現在預設為刪除它們刪除的任何複本的實例目錄、資料目錄和索引目錄。如果您希望在使用這些命令時保留磁碟上的所有資料,請檢閱 Collections API 文件,以了解有關防止此行為的新請求參數的詳細資訊。

已移除 facet.date.* 參數

Solr 3.x 中已棄用的 facet.date 參數 (以及相關的 facet.date.* 參數) 已完全移除。如果您尚未切換到使用等效的 facet.range 功能,則必須立即執行此操作,才能升級。