簡體   English   中英

將Elasticsearch從1.6.0升級到較新版本

[英]Upgrade Elasticsearch from 1.6.0 to Newer Versions

內容:

在嘗試將Spring Boot升級到1.4.x(或更高版本)時,我們想將Elasticsearch從1.6.x升級到2.4.x,並面臨以下問題:

  1. 應用程序無法啟動,並顯示以下錯誤: script.disable_dynamic is not a supported setting, replace with fine-grained script settings.
  2. 測試案例由於錯誤而失敗: script file extension not supported [groovy]
  3. 測試案例由於解析查詢時出錯而失敗: must specify a script in script fields

如何解決這些問題?

升級到較新版本的Elsaticsearch時,上述問題的解決方案:

  1. 我們在配置中有script.disable_dynamic = false 在新版本的Elasticsearch中,該設置已刪除,並替換為錯誤消息中明確說明的細粒度腳本設置。 我們將其替換為以下內容(您應該查看文檔以獲取最佳配置):

     script.file = true // we needed this for our script files script.inline = false script.indexed = false 
  2. 為了進行測試,我們將Elasticsearch Cluster Runner與一些Groovy腳本一起使用。 對於新版本的Elasticsearch,您需要向項目中明確添加所需的依賴項:

     <dependency> <groupId>org.elasticsearch.module</groupId> <artifactId>lang-groovy</artifactId> <version>${elasticsearch.version}</version> </dependency> 
  3. 您可能必須更新/更改查詢才能解決問題3。 例如,我們有以下內容:

     { ... "script_fields" : { "channel" : { "file": "channel_calc" }, "data" : { "file": "data_search_calc_v3" } }, "_source": "*" ... } 

    而且我們必須將file節點包裝在script節點中:

     { ... "script_fields" : { "channel" : { "script" : { "file": "channel_calc" } }, "data" : { "script" : { "file": "data_search_calc_v3" } } }, "_source": "*" ... } 

希望它能幫助別人。
干杯,

我建議您使用elasticsearch migration插件運行您的集群,它為您提供了一個很好的概述,其中包括當您要升級時會破壞集群的內容以及在集群配置方面可能要更改的內容。 這些可能是您現在遇到的問題,但是該插件也會為您提供將來可能會遇到的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM