Solr 8 的主要變更

Solr 8.0 是 Solr 的一個主要新版本。

此頁面重點介紹了最大的變更,包括您可能需要注意的新功能,以及預設行為的變更和已移除的已棄用功能。

Solr 8 升級規劃

在開始升級到 Solr 8 之前,請花時間檢閱從您目前使用的版本到 Solr 8 的所有變更資訊。

您還應該考慮到您尚未升級的任何版本中,Solr 所做的所有變更。例如,如果您目前使用的是 Solr 7.4,除了 8.0 的變更之外,您還應該檢閱所有後續 7.x 版本中所做的變更。

仔細檢閱下方早期 7.x 版本中的主要變更中的清單,以及您 Solr 執行個體中的 CHANGES.txt,將有助於您規劃遷移到 Solr 8 的過程。

升級先決條件

如果使用 SolrCloud,您必須使用 Solr 7.3.0 或更高版本。Solr 的 LeaderInRecovery (LIR) 功能在 Solr 7.3 中 發生重大變更。雖然這些變更與所有後續 7.x 版本向後相容,但在 8.0 中已移除該相容性。為了升級到 Solr 8.x,您叢集的所有節點都必須執行 Solr 7.3 或更高版本。如果嘗試使用執行早於 7.3 的版本的節點進行升級,可能會遺失文件。

如果您未使用 SolrCloud 模式的 Solr (您執行使用者管理的叢集或單一節點安裝),我們預期您可以從任何 7.x 版本升級到 Solr 8,而不會有重大問題。

使用 Solr 8 進行滾動升級

如果您計劃使用滾動升級模型 (連續升級每個節點,而不是建立一個全新的 8.x 叢集) 來升級叢集,請仔細閱讀以下內容。

Solr 節點可以接聽並服務 HTTP/2 或 HTTP/1 請求。預設情況下,大多數內部請求都是使用 HTTP/2 發送的。然而,這表示預設情況下,Solr 8.0 節點無法與執行 Solr 8.0 之前的版本的節點通訊。

但是,您可以使用參數啟動 Solr 8.0,強制使用 HTTP/1.1 通訊,直到叢集的所有節點都升級完成。以下是執行滾動更新的步驟

  1. 像往常一樣執行滾動更新,但啟動 Solr 8.0 節點時,將 -Dsolr.http1=true 作為啟動參數。使用此參數時,內部請求會使用 HTTP/1.1 發送。

    ./bin/solr start -c -Dsolr.http1=true -z localhost:2481/solr -s /path/to/solr/home

    請注意,上述命令必須針對您的環境進行自訂。Solr 控制指令碼參考一節包含所有可能的選項。如果您是以服務的形式執行 Solr,您可能更喜歡檢閱升級 Solr 叢集一節。

  2. 當所有節點都升級到 8.0 時,請重新啟動每個節點,而不要使用 -Dsolr.http1 參數。

升級後重新建立索引

強烈建議您在主要版本升級後完整地重新建立文件的索引。

Solr 參考指南新增了一個章節,重新建立索引,其中涵蓋了幾種關於如何重新建立索引的策略。

新功能與增強功能

HTTP/2 支援

從 Solr 8 開始,Solr 節點支援 HTTP/2 請求。

到目前為止,Solr 僅限於使用 HTTP/1.1。實際上,HTTP/1.1 每個 TCP 連接僅允許一個未完成的請求,這表示若要同時發送多個請求,必須建立多個 TCP 連接。這會導致雙方資源浪費和長時間的垃圾回收 (GC) 暫停。

Solr 8 支援 HTTP/2,透過使用相同的 TCP 連接平行發送多個請求來克服此問題。

HTTP/2 的 SSL 支援

為了支援 HTTP/2 連接的 SSL,Solr 使用 ALPN。

Java 8 不包含 ALPN 的實作,因此當啟用 SSL 且正在使用 Java 8 時,Solr 將僅以 HTTP/1 啟動。

HTTP/2 的用戶端變更

Http2SolrClient 導入了基於 Jetty Client 的 HTTP/2 和非同步功能。此用戶端取代了 HttpSolrClientConcurrentUpdateSolrClient,以發送大多數內部請求(由 UpdateShardHandlerHttpShardHandler 發送)。

然而,這會導致組態和驗證設定上的以下變更

  • updateShardHandler 參數 maxConnections 不再使用,並且已移除。

  • HttpShardHandler 參數 maxConnections 參數不再使用,並且已移除。

  • 自訂的 AuthenticationPlugin 實作必須透過實作 HttpClientBuilderPlugin.setup 來為 Http2SolrClient 提供自己的設定,否則內部請求將無法驗證。

HTTP/2 的指標變更

Http2SolrClient 不支援公開與連線相關的指標。因此,以下指標不再可用

  • 來自 QUERY.httpShardHandler 的指標

    • availableConnections

    • leasedConnections

    • maxConnections

    • pendingConnections

  • 來自 UPDATE.updateShardHandler 的指標

    • availableConnections

    • leasedConnections

    • maxConnections

    • pendingConnections

巢狀文件

針對巢狀文件支援進行了多項改進。

Solr 現在能夠在索引中儲存有關文件關係的資訊。此儲存的資訊可用於查詢。

如果關係已正確儲存在索引中,子文件轉換器現在也可以以巢狀形式傳回子文件。

在升級至 Solr 8 的情況下,有幾個重要的變更需要強調

  • 當使用 split 參數分割的巢狀子文件將 JSON 資料傳送到 Solr 時,子文件現在將透過 JSON 中使用的欄位/標籤字串關聯到它們的父文件,而不是匿名關聯。

    大多數使用者可能不會注意到差異,因為除非綱要中有特殊欄位,否則標籤會遺失。這個選擇以前可以使用內部/專家 anonChildDocs 參數旗標切換,該旗標已移除。

  • 依據其 uniqueKey 刪除(或更新)文件現在僅限於考慮根文件,而不考慮子/巢狀文件。因此,依 ID 刪除將無法在子文件上運作(它會靜默失敗),而嘗試透過提供具有相同 ID 的新文件來更新子文件將會新增一個新文件(這可能會是錯誤的)。

    這兩種動作過去和現在都存在問題。不過,就地更新是安全的。如果您要刪除某些子文件,並且知道它們本身沒有巢狀子文件,則必須使用依查詢刪除技術執行此操作。

  • Solr 在 _default configset 中有一個新的欄位,名為 _nest_path_。此欄位儲存非根文件的階層中文件的路徑。

如需更多資訊和組態詳細資料,請參閱 索引巢狀文件搜尋巢狀子文件 區段。

組態和預設參數變更

8.0 中的綱要變更

以下變更會影響欄位的行為方式。

預設評分 (SimilarityFactory)

  • 如果您在綱要中明確使用 BM25SimilarityFactory,則絕對評分會較低,因為 Lucene 變更了 BM25 的計算方式,以移除乘法因子(如需技術詳細資料,請參閱 LUCENE-8563SOLR-13025)。在正常情況下,文件的順序不會變更。如果您需要強制使用舊的 6.x/7.x 評分,請使用 LegacyBM25SimilarityFactory

    請注意,如果您未在綱要中指定任何 similarityFactory,或使用預設的 SchemaSimilarityFactory,則當 luceneMatchVersion 的值低於 8.0.0 時,會自動選取 LegacyBM25Similarity

    另請參閱 相似度 區段,以取得更多資訊。

已移除記憶體編碼解碼器

  • 記憶體編碼解碼器已從 Lucene (MemoryPostingsMemoryDocValues) 中移除,並且不再於 Solr 中可用。如果您在任何欄位或欄位類型組態上使用 postingsFormat="Memory"docValuesFormat="Memory",則移除該設定以使用預設設定,或試驗其他選項之一。

    如需定義編碼解碼器的更多資訊,請參閱 編碼解碼器工廠 區段;如需欄位屬性的更多資訊,請參閱 欄位類型定義和屬性 區段。

LowerCaseTokenizer

  • LowerCaseTokenizer 已遭棄用,並且可能會在 Solr 9 中移除。建議使用者改用 LetterTokenizerLowerCaseFilter

預設 Configset

  • _default configset 現在包含 ignored_* 動態欄位規則。

8.0 中的索引變更

以下變更會影響文件的索引方式。

索引時期的提升

  • 索引時期提升已從 Lucene 7.0 版 中移除,並且在 Solr 7.x 中仍允許使用此語法(儘管它會在記錄中記錄警告)。此語法類似於

    {"id":"1", "val_s":{"value":"foo", "boost":2.0}}

    此語法已完全移除,如果傳送到 Solr,現在會產生錯誤。這是與巢狀文件支援的改進一起完成的。

ParseDateFieldUpdateProcessorFactory

  • ParseDateFieldUpdateProcessorFactory(預設在「無綱要模式」中使用)使用的日期格式模式現在由 Java 8 的 java.time.DateTimeFormatter 而不是 Joda Time 解譯。模式語言非常相似,但並不相同。通常,只需將大寫的 'Z' 變更為小寫的 'z' 來更新模式即可。

    如需無綱要模式中目前建議的模式集,請參閱 無綱要模式 區段,或直接檢查 _default configset(位於 server/solr/configsets 中)。

    另請注意,預設的日期模式(格式)集已從先前的版本擴充,以包含先前由「擷取」模組 (Solr Cell/Tika) 處理的模式。

Solr Cell

  • 擷取模組 Solr Cell) 不再執行任何日期剖析,因此不再支援 date.formats 參數。為了確保日期字串已正確剖析,請在您的更新鏈中使用 ParseDateFieldUpdateProcessorFactory。當 Solr 在 無綱要模式" 中執行時,此更新請求處理器預設會在 "parse-date" 更新處理器中找到。

Langid 模組

  • langid 模組(位於 modules/langid 中)中的 LanguageIdentifierUpdateProcessor 基礎類別變更了一些方法簽名。如果您有自訂的語言識別碼實作,則需要調整您的程式碼。如需變更詳細資料,請參閱 Jira 問題 SOLR-11774

8.0 中的查詢變更

以下變更會影響查詢行為。

醒目提示

  • 統一醒目顯示器參數 hl.weightMatches 現在預設為 true。如需有關醒目顯示器參數的更多資訊,請參閱 醒目顯示 區段。

eDisMax 查詢剖析器

  • qf 參數參考不存在的欄位時,eDisMax 查詢剖析器現在會擲回錯誤。

函式查詢剖析器

  • 當產生負值時,函式查詢剖析器 現在會傳回等於零 (0) 的分數。此變更是因為 Lucene 現在要求分數必須為正數。

8.0 中的驗證和安全性變更

  • 驗證外掛程式現在可以依據每個請求攔截節點間請求。

  • 基本驗證外掛程式現在具有 forwardCredentials 選項,可讓基本驗證標頭在分散式搜尋的情況下轉送至節點間請求,而不是回復至 PKI。

  • 現在會報告驗證請求的指標。

8.0 中的 UI 變更

  • 在 SolrCloud 模式下執行時,Solr 叢集的徑向圖檢視已移除。

  • 現在在左側導覽選單中選擇「雲端」索引標籤時,預設會使用 Solr 7.5 中導入的「節點」檢視。

8.0 中的自動調整變更

  • Solr 中使用的預設複本放置策略已還原為 Solr 7.4 和先前版本使用的「舊版」原則。這是因為在 Solr 7.5 中預設的基於自動調整的複本放置策略中有多個錯誤,除了會忽略 maxShardsPerNodecreateNodeSet 參數之外,還會導致相同分片的複本放置在相同的節點上。

    雖然預設值已變更,但如果已指定叢集原則或喜好設定,或正在使用集合層級原則,則將繼續使用自動調整。

    可以透過設定叢集屬性,將預設複本放置策略變更為再次使用自動調整

    curl -X POST -H 'Content-type:application/json' --data-binary '
      {
        "set-obj-property": {
          "defaults" : {
            "cluster": {
              "useLegacyReplicaAssignment":false
            }
          }
        }
      }' http://$SOLR_HOST:$SOLR_PORT/api/cluster
  • 可透過 bin/solr autoscaling 使用新的命令列選項,以在執行中的 Solr 叢集外部計算自動調整原則建議和診斷資訊。此選項可以使用現有的自動調整原則,或測試伺服器檔案系統上檔案中的新原則的影響。

8.0 中的相依性更新

  • 所有 Hadoop 相依性已升級至 Hadoop 3.2.0 (從 2.7.2)。

較早 7.x 版本中的主要變更

以下是 Solr 7.1 和 7.7 之間發佈的主要變更清單。

請務必檢閱此清單,以便您瞭解您目前執行的 Solr 版本與 Solr 8.0 之間可能已變更的內容。

Solr 7.7

如需 Solr 7.7 中主要新功能的概觀,請參閱 7.7 版本說明

在升級至 Solr 7.7.x 時,使用者應注意 v7.6 的以下主要變更

管理介面

  • 管理 UI 現在會為其叢集上已啟用驗證的任何使用者顯示登入畫面。具有 基本驗證 的叢集將會提示使用者輸入使用者名稱和密碼。在設定為使用 Kerberos 驗證 的叢集上,驗證會像以前一樣由瀏覽器透明地處理,但如果驗證失敗,使用者將會被指示設定其瀏覽器以提供適當的 Kerberos 票證。

    登入畫面的目的僅為外觀上的呈現 - 在 7.7 版本之前及現在,管理介面 (Admin UI) 觸發的 Solr 請求都需要進行身份驗證。登入畫面僅改變了提供此身份驗證的使用者體驗。

分散式請求

  • shards 參數用於手動選擇接收分散式請求的分片和副本,現在會根據可接受值的允許清單檢查節點,以確保安全性。

    在 SolrCloud 模式下,此允許清單會自動設定為包含所有即時節點。

在使用者管理的叢集或單節點安裝中,允許清單預設為空。在這些安裝中使用 shards 參數的升級使用者,可以透過在其 solrconfig.xml 檔案中設定任何 shardHandler 設定中的 shardsWhitelist 屬性來設定此值。

+ 如需更多資訊,請參閱分散式請求文件。

Solr 7.6

請參閱 7.6 發行說明,以瞭解 Solr 7.6 的主要新功能概述。

升級至 Solr 7.6 時,使用者應注意 v7.5 的以下主要變更

集合

  • 使用 CLUSTERPROP 命令設定叢集範圍預設叢集屬性的 JSON 參數已變更。

    舊的語法將預設值巢狀於名為 clusterDefaults 的屬性中。新的語法僅使用 defaults。要使用的命令仍然是 set-obj-property

    新語法的範例如下

    {
      "set-obj-property": {
        "defaults" : {
          "collection": {
            "numShards": 2,
            "nrtReplicas": 1,
            "tlogReplicas": 1,
            "pullReplicas": 1
          }
        }
      }
    }

    舊的語法將至少支援到 Solr 9,但建議使用者盡快開始使用新的語法。

  • 參數 min_rf 已被棄用,不再需要提供,即可查看達成的複製因子。此資訊現在將始終隨回應一起返回給客戶端。

自動縮放

  • 現在,自動縮放原則被用作選擇建立新副本或新集合副本的節點的預設策略。

    所有使用者現在都有一項預設原則,該原則會依據核心數量和可用可用磁碟空間對節點進行排序,這表示預設情況下,核心數量最少且可用可用磁碟空間最高的節點將被選為建立新核心的節點。

  • 上述變更對 maxShardsPerNode 參數有兩個額外的影響

    1. 它解除了在自動縮放原則生效時使用 maxShardsPerNode 的限制。現在,建立集合時可以隨時設定此參數。

    2. 它解除了在自動縮放原則生效時,maxShardsPerNode=1 的預設設定。無論自動縮放原則是否生效,都會正確設定(如果需要)。

      maxShardsPerNode 的預設值仍然是 1。如果需要無限 maxShardsPerNode 的舊行為,則可以將其設定為 -1

DirectoryFactory

  • Lucene 推出了 ByteBuffersDirectoryFactory 作為 RAMDirectoryFactory 的替代方案,後者將在 Solr 9 中移除。

    雖然仍然鼓勵大多數使用者使用 NRTCachingDirectoryFactory,它允許 Lucene 選擇要使用的最佳目錄工廠,但如果您已明確設定 Solr 使用 RAMDirectoryFactory,則建議您盡快切換到新實作,然後再發佈 Solr 9。

    如需更多關於新目錄工廠的資訊,請參閱 Jira 問題 LUCENE-8438

    如需更多關於 Solr 中目錄工廠設定的資訊,請參閱索引位置和格式章節。

Solr 7.5

請參閱 7.5 發行說明,以瞭解 Solr 7.5 的主要新功能概述。

升級至 Solr 7.5 時,使用者應注意 v7.4 的以下主要變更

架構變更

  • 自 Solr 7.0 以來,Solr 的架構欄位猜測為所有 _txt 欄位建立 _str 欄位,並在預設情況下與查詢一起傳回這些欄位。從 7.5 開始,預設情況下將不再傳回 _str 欄位。它們仍然可用,並且可以使用查詢中的 fl 參數請求。另請參閱關於欄位猜測的章節,以瞭解更多關於架構欄位猜測如何運作的資訊。

  • 至少自 Solr v4 以來一直無法運作的標準篩選器已移除。

索引合併原則

  • 當使用 TieredMergePolicy(Solr 的預設合併原則)時,optimizeexpungeDeletes 現在會遵循 maxMergedSegmentMB 設定參數,其預設值為 5000 (5GB)。

    如果絕對需要控制最佳化後存在的區段數量,請將 maxSegments 指定為正整數。在「盡力而為」的基礎上,會遵守將 maxSegments 設定高於 1 的情況。

    TieredMergePolicy 也會比早期更積極地從超出 maxMergedSegmentMB 的區段中回收資源。

UIMA 已移除

  • UIMA 模組已從 Solr 中移除,且不再可用。

記錄

  • 預設情況下,Solr 的記錄設定檔現在位於 server/resources/log4j2.xml

  • Windows 使用者的錯誤已修正。使用 Solr 的範例 (bin/solr start -e) 時,記錄檔現在將放置在正確的位置 (example/ 而非 server)。另請參閱Solr 範例Solr 控制腳本參考,以取得更多資訊。

Solr 7.4

請參閱 7.4 發行說明,以瞭解 Solr 7.4 的主要新功能概述。

升級至 Solr 7.4 時,使用者應注意 v7.3 的以下主要變更

記錄

  • Solr 現在使用 Log4j v2.11。Log4j 設定現在位於 log4j2.xml 而不是 log4j.properties 檔案中。這僅是伺服器端變更,使用 SolrJ 的用戶端不需要任何變更。用戶端仍然可以使用任何與 SLF4J 相容的記錄實作。我們現在讓 Log4j 在啟動時處理 Solr 記錄的輪替,並且 bin/solr 啟動腳本將不再嘗試這樣做,也不會將現有的主控台或垃圾收集記錄移動到 logs/archived 中。請參閱設定記錄,以瞭解更多關於 Solr 記錄的詳細資訊。

  • 設定 slowQueryThresholdMillis 現在會將慢速請求記錄到名為 solr_slow_requests.log 的單獨檔案中。先前,它們會記錄在 solr.log 檔案中。

使用者管理叢集

  • 領導者-追隨者模型的 Solr 擴展中,追隨者在複製期間於領導者上偵測到全新的索引時,不再提交空的索引。若要還原為先前的行為,請在複製處理常式設定的追隨者部分中,將 false 傳遞給 skipCommitOnLeaderVersionZero,或將其傳遞給 fetchindex 命令。

如果您是從早於 Solr 7.3 的版本升級,請參閱以下先前的版本說明。

Solr 7.3

請參閱 7.3 發行說明,以瞭解 Solr 7.3 的主要新功能概述。

升級至 Solr 7.3 時,使用者應注意 v7.2 的以下主要變更

Configsets

  • 自 Solr 7.0 起,未指定 configset 名稱建立的集合使用 _default configset 的副本。在 7.3 之前,複製的 configset 與集合名稱相同,但從 7.3 開始,它將使用新的「.AUTOCREATED」後綴命名。這是為了防止覆寫自訂 configset 名稱。

學習排序

  • 用於學習排序 rerank 查詢剖析的 rq 參數不再考慮 defType 參數。請參閱執行重新排序查詢,以瞭解更多關於此參數的資訊。

自動縮放與自動新增副本

  • 自動縮放系統的行為現在會在動作開始和冷卻期結束之間暫停所有觸發器的執行。觸發器會在冷卻期過期後恢復。先前,冷卻期是在觸發器事件的動作完成後開始的固定期間,在此期間,所有觸發器會繼續執行,但任何事件都會被拒絕並稍後嘗試。

  • 用於限制處理的自動縮放事件速率的節流機制已移除。這會棄用自動縮放 API 中的 actionThrottlePeriodSeconds 設定,該設定現在無法運作。請改用 triggerCooldownPeriodSeconds 參數暫停事件處理。

  • 與自動新增副本功能一起使用的 autoReplicaFailoverWaitAfterExpiration 預設值已從先前的預設值 30 秒增加到 120 秒。這會影響 Solr 將新副本新增到替換已當機或關閉節點上的副本的速度。

記錄

  • 預設的 Solr 記錄檔大小和備份數量已分別提高到 32MB 和 10。請參閱設定記錄章節,以瞭解更多關於如何設定記錄的資訊。

SolrCloud

  • 舊的「復原中領導者」實作(在 Solr 4.9 中實作)現在已棄用並取代。Solr 將支援從舊的 7.x 版 Solr 滾動升級到未來 7.x 版本,直到 7.x 主要版本的最後一個發行版本。

    這表示若要未來升級到 Solr 8,您需要使用 Solr 7.3 或更高版本。

  • 不最新的副本不再允許成為領導者。請使用集合 API 的 FORCELEADER 命令,以允許這些副本成為領導者。

空間

  • 如果您將空間 JTS 程式庫與 Solr 一起使用,則必須升級到 1.15.0。此新版本的 JTS 現在已雙重授權,以包含 BSD 樣式的授權。請參閱關於空間搜尋的章節,以瞭解更多資訊。

醒目提示

  • solrconfig.xml 中的最上層 <highlighting> 元素現在已正式棄用,改用等效的 <searchComponent> 語法。此元素在預設的 Solr 安裝中已停止使用數個版本。

如果您是從 Solr 7.2 之前的版本升級,請參閱下方的先前版本注意事項。

Solr 7.2

請參閱7.2 版本說明,以了解 Solr 7.2 的主要新功能概述。

升級至 Solr 7.2 時,使用者應注意以下 v7.1 版本的主要變更

本機參數

  • 本地參數 {!myparser …​} 開頭的查詢字串,用於從一個查詢解析器切換到另一個,並且僅供 Solr 系統開發人員使用,而非終端使用者進行搜尋。為了減少意外可駭性的負面影響,Solr 現在限制本地參數被解析的情況,僅限於預設解析器為 lucenefunc 的上下文。

    因此,如果 defType=edismax,則 q={!myparser …​} 將無法運作。在該範例中,請將所需的查詢解析器放入 defType 參數中。

    另一個範例是,如果 deftype=edismax,則 hl.q={!myparser …​} 也會因為相同原因而無法運作。在這個範例中,請將所需的查詢解析器放入 hl.qparser 參數中,或設定 hl.qparser=lucene。大多數使用者不會遇到這些情況,但有些使用者需要進行變更。

    如果您必須完全向下相容,請使用 luceneMatchVersion=7.1.0 或更早的版本。

eDisMax 查詢剖析器

  • 預設情況下,eDisMax 解析器不再允許使用本地參數或較舊的 _query_ 魔術欄位技巧來指定 Solr 解析器的子查詢。

    例如,預設情況下不再支援 {!prefix f=myfield v=enterp}_query_:"{!prefix f=myfield v=enterp}"。如果您希望允許進階使用者執行此操作,請設定 uf=* _query_ 或其他包含 _query_ 的值。

    如果目前需要完全向下相容,請使用 luceneMatchVersion=7.1.0 或更早的版本。

如果您是從 Solr 7.1 之前的版本升級,請參閱下方的先前版本注意事項。

Solr 7.1

請參閱7.1 版本說明,以了解 Solr 7.1 的主要新功能概述。

升級至 Solr 7.1 時,使用者應注意以下 v7.0 版本的主要變更

AutoAddReplicas

  • 如果副本發生故障,自動新增副本的功能,先前僅在將索引儲存在 HDFS 中時可用,現在已移植到自動調整框架。因此,即使索引位於本機磁碟上,所有使用者現在都可以使用 autoAddReplicas

    此功能的現有使用者不應需要變更任何內容。但是,他們應注意以下變更

    • 行為:使用 MODIFYCOLLECTION APIautoAddReplicas 屬性從停用 (false) 變更為啟用 (true),不再立即為集合替換故障的副本。相反地,僅當包含它們的節點在啟用 autoAddReplicas 時發生故障,才會新增副本。參數 autoReplicaFailoverBadNodeExpirationautoReplicaFailoverWorkLoopDelay 不再使用。

    • 棄用:使用 API 在整個叢集範圍內啟用/停用 autoAddReplicas 將被棄用;請改用 name=".auto_add_replicas" 的暫停/恢復觸發 API。

指標報告器

  • 分片和叢集指標報告器配置現在需要 class 屬性。

    • 如果報告器配置 group="shard" 屬性,請同時配置 class="org.apache.solr.metrics.reporters.solr.SolrShardReporter" 屬性。

    • 如果報告器配置 group="cluster" 屬性,請同時配置 class="org.apache.solr.metrics.reporters.solr.SolrClusterReporter" 屬性。

      如需更多資訊,請參閱指標報告:分片和叢集報告器一節。

串流表達式

  • solrj.io.eval 中的所有串流評估器都已重構為具有更簡單且更穩健的結構。這簡化並縮減了實作新評估器所需的程式碼,並使評估器更容易處理不同的資料類型(基本類型、物件、陣列、列表等等)。

ReplicationHandler

  • 在 ReplicationHandler 中,leader.commitReserveDuration 子元素已棄用。請改為配置直接的 commitReserveDuration 元素,以便在所有模式(領導者、追隨者、雲端)中使用。

RunExecutableListener

  • RunExecutableListener 基於安全性考量而移除。如果您想要監聽因更新、提交或最佳化而發生的事件,請將您自己的監聽器撰寫為 Solr 外掛程式的一部分,作為原生 Java 類別。

XML 查詢解析器

  • 在 XML 查詢解析器 (defType=xmlparser{!xmlparser …​ }) 中,預設情況下不允許解析外部實體。

如果您是從 Solr 7.0 之前的版本升級,請在開始升級之前參閱Solr 7 中的主要變更