截至 2018-06-10 Elasticsearch6.2.4html
PUT _cluster/settings { "persistent":{ "cluster.routing.allocation.enable": "none" } }
POST _flush/synced
當執行synced flush時,應該檢查響應結果,確認寫入是否成功,響應體會列出因爲索引期間因爲失敗而掛起的同步操做,而返回狀態碼仍然爲200。若是失敗了,從新提交請求。 GET _cat/nodes
請求確認。PUT _cluster/settings { "persistent":{ "cluster.routing.allocation.enalbe":null } }
GET _cat/health
請求檢查進度。等待status列從yellow變爲green。一旦node爲green,全部的主分片和複製分片都已經被分配。滾動更新時,分配到新版本節點上的主分片不會分配複製分片到老版本節點。若是不能分配複製分片到其餘節點(集羣中僅有一個更新的節點),複製分片會一直保持未分配,status會保持yellow。這種狀況下,只要沒有初始化或重定位分片,就能夠繼續(檢查init和relo列)。一旦有其餘節點被更新,複製分片能夠被分配(須要有複製數的其餘分片更新),狀態會變爲green。未sync-flushed的分片可能須要更長時間來恢復。能夠經過GET _cat/recovery
請求監控獨立分片的恢復狀態。若是中止索引,一完成恢復就繼續索引是安全的。 GET _cat/health
GET _cat/nodes
請求檢測加入集羣的節點。_cat/health
和_cat/recovery
api進行檢測。refresh_interval
爲-1
,number_of_replicas
爲0
refresh_interval
和number_of_replicas
的值與老的索引中使用的相同reindex.remote.whitelist: oldhost:httpport
來開啓對老索引的訪問refresh_interval: -1
,number_of_replicas: 0
來快速重建索引POST _reindex
重建索引,若是設置wait_for_completion: false
讓重建索引工做後臺執行,reindex請求會返回一個 task_id ,能夠經過使用 task API :GET _tasks/TASK_ID
檢測重建索引工做進度refresh_interval
和number_of_replicas
爲但願的值(默認爲30s(索引文檔可讀取時間)和1(複製分片數量))version_type
爲 force
覆蓋文檔版本檢查的操做version
created
字段(元素),使用operation
字段代替。found
字段,應該使用operation
字段代替。index_patterns
代替 template
,能夠在一個數組中定義多個glob風格的通配模式,對於單個通配模式,也支持直接使用一個字符串,兩種方式都是有效的index.shared_filesystem
, index.shadow_replicas
, node.add_lock_id_to_custom_path
allow_no_indices
的默認值從false改成true,與 Delete index API 一致。所以,當Open/Close index API 使用一個沒匹配任何打開/關閉的索引的通配表達式時,不會返回一個錯誤。+
(遺漏+
符號與使用具備相同效果,所以移除索引表達式中+
的支持)flush
時刪除,這是爲了在請用一個複製加速時,基於操做的恢復的機會index.max_ngram_diff
改變,若是超過限制會產生警告日誌index.max_shingle_diff
屬性改變,若是超過這個限制會輸出警告日誌ingest.new_date_format
來讓ingest.timestamp
元數據字段被格式化爲ES能夠不須要進一步轉換強制使用date類型,限制再也不須要這樣了,而這個設置被移除,能夠簡單的經過在管線中設置一個字段到{{ingest.timestamp}}來得到date類型的字段而不會有任何mapping錯誤setSource
和其餘方法接受字節/字符串對象源表示而不須要指定XContentType,自動偵測內容類型再也不使用,當提供字節或一個字符串做爲source時,這些方法如今須要指定XContentType做爲額外的參數XContentTypeexecute
方法接受一個listener參數來替代_all
元字段默認不啓用,在以前使用_all字段進行搜索的query_string
和simple_query_string
如今將檢查是否啓用_all字段,並在_all字段禁用時執行跨越全部字段的query。_all
字段在Elasticsearch6.0以後建立的索引中將再也不能夠配置include_in_all
設置在這些索引中將再也不可用match_mapping_type
類型的動態模板,如今將會跑出一個未識別類型的異常date
字段的locale
選項容許幾乎全部的字符串,未識別的值將會簡單的被忽略,6.0以後在索引建立時未識別的值將被拒絕ES_PATH_CONF
環境變量配置用戶設定目錄來替代default.path.data
和default.path.logs
來設置沒有被設定文件中的其餘設定覆蓋時的默認數據路徑和默認日誌路徑。這些設定被移除了,如今數據路徑和日誌路徑僅能經過設定配置,相應的,經過packagin scripts設定default.path.data和default.path.logs的環境變量DATA_DIR
和LOG_DIR
將再也不生效。另外,這意味着若是你使用分發包(如經過RPM或DEB分發包安裝安裝),在以前沒有明確指定path.data或path.logs,在遷移配置文件時,必須增長path.data
和path.logs
的設定。使用以前的默認值,須要添加兩行設定path.data: /var/lib/elasticsearch
和path.logs: /var/log/elasticsearch
到elasticsearch.yml
文件中。若是已經指定了,須要保留他們。若是不這麼作,Elasticsearch將沒法啓動-server
標記 與以前32位再也不支持的改變相關,默認的jvm.option
文件再也不包含-server
標記。先前,因爲與服務不兼容,在Windows service將過濾 -server 標記。因爲jvm.options文件再也不包含 -server ,這個標記的過濾將在 Windows service 安裝時移除,這意味着若是你的jvm.options文件包含這個標記,你須要移除他ES_JVM_OPTIONS
容許jvm.options文件自定義位置的環境變量 ES_JVM_OPTIONS 被移除,促使使用環境變量 ES_PATH_CONF。這個環境變量已經在packaging中用來支持配置文件的定位,因此這個改變只是讓jvm.options文件與其餘配置文件放在一塊兒percolator.map_unmapped_fields_as_string
設定 應該使用percolator.map_unmapped_fields_as_text
設定來代替Environment
實例 之前,容許從Settings構建一個Environment實例來發現特定插件的配置文件,在全部Settings
對象沒有包含正確設定的配置路徑的必要信息時將不適用。相反,須要知道配置路徑的插件應該有一個接受Settings
和Path
實例的構造函數,經過使用Environment上適當的構造函數構造一個Environmentsize
參數 size參數不能再指定爲-1。若是須要全部的文檔,那麼不該該設置size參數source
查詢字符串參數時,一樣要指定source_content_type
參數指定源媒體類型false
和true
做爲值,全部其餘的值將致使一個錯誤tokenizer
或者analyzer
參數,在Elasticsearch6.0,若是設定了char_filter/filter而且沒有設定tokenizer/analyzer,Analyze API 可以分析文本爲自定義標準化關鍵字字段DELETE index/type/id
當type不存在時,如今會經過default mapping隱式建立typeGET /_aliases,_mappings
或 GET /myindex/_settings,_alias
使用逗號分割多種請求類型獲取一個或多個索引的多種類型信息,逗號分割獲取多種信息片斷的用法已經被移除了。使用 GET /_all
獲取全部索引 aliases,settings,mappings 信息。使用 GET /myindex/_mapping|_alias|_settings
獲取一個索引對應信息Allow
頭將被添加到405響應中,包含容許的方法(動做)_cache
和_cache_key
選項被徹底移除了,使用他們將拋出一個錯誤ignore_unavilable
爲false時,對一個關閉的索引調用全部在關閉的索引上不支持的api,將返回一個IndexClosedException
,響應狀態碼將從403改變爲400implement a ScriptEngine
代替doc.some_dete_field.value
如今返回ReadableDateTime
來取代epoch以來毫秒數的long值。doc.some_date_field[some_number]
也是同樣。若是有須要,使用doc.some_date_field.value.millis
來獲取epoch以來的毫秒數_index
變量如今被移除了,若是你須要用他來進行高級排序,考慮寫一個Similarity
插件script.allowed_types
和allowed_contexts
代替lang
不能再指定lang
變量爲使用了stored script的請求的一部分,不然會出現一個錯誤。注意一個使用了stored script的請求與puts一個stored script的請求是不一樣的。腳本的語言已經做爲集羣狀態的一部分儲存,執行stored script使用id
已經能夠獲取全部必要的信息lang
在使用_scripts/
路徑執行PUT|GET|DELETE動做的stored script時,不能再指定lang參數爲url的一部分。全部的stored scripts必須有一個惟一的id
做爲命名空間,如今僅有id
而再也不有lang
和id
_search/template
apis,使用帶store search templates的stored script api來代替span_near
query的collect_payloads
參數,payloads將在須要時加載in
query(與terms
query相似)geo_bbox
query(與geo_bounding_box
query相似)mlt
query(與more_like_this
query相似)more_like_this
query的like_text|ids|docs
參數(都與like
相似),min_word_len
(與min_word_length
相似),max_word_len
(與max_word_length
相似)fuzzy_match
和match_fuzzy
query(與match
query相似)indices.query.bool.max_clause_count
的主體indices
query{ }
)的支持,當使用一個空查詢對象時將會拋出一個異常minimum_number_should_match
被移除,應該使用minimum_should_match
代替query_string
query在使用max_determinized_states
將容許正確解析最大狀態數量enable_position_increment
,使用enable_position_increments
代替geo_distance
查詢、排序和聚合,在distance_type
參數中移除了sloppy_arc
選項geo_distance_range
querygeo_distance
query中移除了optimize_bbox
參數geo_bounding_box|geo_polygon|geo_distance
query中移除了ignore_malformed|coerce
參數bool|common_terms
queries中移除了disable_coord
參數,若是提供了,將被無視並輸出棄用警告template
querypercolate
query的document_type
,不能再指定document_type
參數split_on_whitespace
參數,若是提供了,會輸出廢棄警告。query_string query如今僅使用操做符分割use_dis_max
參數,必須使用tie_breaker
參數代替auth_generate_phrase_queries
參數,使用明確引用的queryquery_string
和simple_query_string
的all_fields
參數,使用設置default_field
爲*`代替,若是提供了,default_field會自動設置爲*index
參數如今是強制的(用來在專門的索引中查找terms),在以前,index默認爲執行query的index,如今index必須在請求中明確設定match
query中的type
和slop
參數被移除了,使用match_phrase
或match_phrase_prefix
來代替設置type
。從match
移除了slop
可是在match_phrase
和match_phrase_prefix
支持了match_phrase
query的phrase_slop
參數(與slop
參數類似)constant_score
query中的query
參數(與filter
參數類似)phrase_slop
參數(與slope
參數類似)prefix
query中移除了prefix
參數(與value
參數類似)range
query中移除了le
(與lte
類似)和ge
(與gte
類似)ids
query中與type
類似的types
和_type
參數constant_score
類似的constant_score_auto
和constant_score_filter
type
url參數time
字段顯示人類可讀的時間輸出被顯示使用納秒數的time_in_nanos
字段代替,能夠經過在請求url中加上?human=true
打開time
字段,將會顯示取整的人類可讀的時間值_uid
字段數據 廢棄了_uid
字段數據,能夠改成使用_id代替,而他(_id)仍沒有被啓用的緣由是由於在random_score
function中被使用(沒有設定一個seed字段時,默認會用_id,但會消耗大量內存,不設定seed字段的用法棄用)。若是你真的須要獲取文檔id來排序、聚合或搜索,推薦冗餘id做爲文檔的一個字段unified
高亮時新的默認高亮選擇。這個補償策略對每一個字段高亮依賴於字段類型(index_options)內部精選。強制指定fvh
或plain
類型的高亮還是可用的。postings
高亮從Lucene和Elasticsearch中移除了。當index_options
選項設置爲offsets
時,unified
高亮輸出一樣的highlightingfielddata_fields
,應該用docvalue_fields
代替docvalue_fields
如今默認最多請求100字段,能夠經過使用index.max_docvalue_fields_search
索引設定覆蓋script_fields
如今默認請求最大限制32個script fields,能夠經過使用索引設定index.max_script_fields
設定index.max_inner_result_window
索引設置控制request_cache:true
到一個查詢中會建立一個scroll('scroll=1m')如今廢棄了,這個請求將不會使用內部緩存在將來版本將會用400代替僅提示忽略。Scroll queries的緩存沒有意義index.max_terms_count
來改變默認最大值node: name: my-node attr: rack: my-rack
true
和false
爲boolean,其餘的會拋出異常,爲了向後兼容,在Elasticsearch6.0以前創建的索引仍能工做。注意這不會應用到存儲在elasticsearch.yml中的節點級別設定cluster.routing.allocation.snapshot.relocation_enabled
容許分片運行從新分配到其餘節點被移除的snapshots。啓用此設定,在分片分配到其餘節點,而後在快照運行時從新分配到此節點可能會引起問題indices.store.throttle.type
和indices.store.throttle.max_bytes_per_sec
及索引設定index.store.throttle.type
和index.store.throttle.max_bytes_per_sec
將再也不解析index.store.type
被移除了,若是你在使用他,單純的將他從你的索引設定中移除,Elasticsearch會使用對於你操做系統最好的store
實現network.tcp.blocking_client
,network.tcp.blocking
,transport.tcp.blocking_client
,transport.tcp.blocking_server
和http.tcp.blocking_server
設定將再也不解析,以前未使用的設定transport.netty.max_cumulation_buffer_capacity
,transport.netty.max_composite_buffer_components
和http.netty.max_cumulation_buffer_capacity
被移除了base
類似如今做爲調整被忽略,query normalization如今被移除,若是提供了,會忽略設定並給出一個廢棄警告script.allowed_types
和script.allowed_contexts
來代替discovery.type
再也不支持gce|aws|ec2
值,這些平臺的集成應該經過設置discovery.zen.hosts_provider
爲他們的值throttle_time
因爲存儲閾值被移除了,store stats將再也不報告throttle_timejava.security.AllPermission
。可是,這實際上至關於禁用了安全管理器。所以,在生產模式下如今經過all permission bootstrap check 禁止受權-Djava.io.tmpdir=${ES_TMPDIR}
指定臨時目錄,在全部的操做系統上這樣操做都是安全的