close

文| Travis

出品 | OSC開源社區(ID:oschina2013)

Elasticsearch 是一個基於 Lucene 庫的搜索引擎。它提供了一個分布式、支持多租戶的全文搜索引擎,具有 HTTP Web 接口和無模式 JSON 文檔。Elasticsearch 是用 Java 開發的,並在 SSPL+Elastic License 許可證下作為開源軟件發布。官方客戶端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和許多其他語言中都是可用的。
時隔近三年,Elasticsearch 8 正式發布,新增的功能包括:

7.x REST API 兼容性

8.0 為 Elasticsearch REST APIs 引入了一些重大的變化。雖然更新你的應用程序以適應這些變化十分重要,但在升級後尋找和更新每一個 API 調用可能對開發者而言十分痛苦且容易出錯。為了使這個過程變得更加容易,Elasticsearch 已經在 REST API 中增加了對 7.x 兼容性 header 的支持。這些可選的 header 文件讓你向 8.0 集群發出 7.x 兼容的請求,並收到 7.x 兼容的響應。
雖然官方仍然建議開發者更新你的應用程序以使用原生的 8.0 請求和響應,但 7.x API 兼容 header 文件讓你可以在更長的時間內安全地進行這些更改。
安全功能在默認情況下被啟用和配置
在沒有安全保障的情況下運行 Elasticsearch 會讓你的集群暴露在任何可以向 Elasticsearch 發送請求的用戶面前。在以前的版本中,你必須明確地啟用 Elasticsearch 的安全功能,如認證、授權和網絡加密(TLS)。從 Elasticsearch 8.0 開始,當第一次啟動 Elasticsearch 時,安全功能被默認啟用和配置。
在啟動時,Elasticsearch 8.0 會生成註冊令牌,你可以用它來連接 Kibana 實例或在安全的 Elasticsearch 集群中註冊其他節點,而無需生成安全證書或更新 YAML 配置文件。只需在啟動新節點或 Kibana 實例時使用生成的註冊令牌,Elastic Stack 就會為你處理所有安全配置。
已知問題:

如果你在 Linux ARM 或 macOS M1 等 arch64 平台上從歸檔中安裝 Elasticsearch,那麼在首次啟動節點時,不會自動生成elastic用戶密碼和 Kibana 註冊令牌。節點啟動後,需要用bin/elasticsearch-reset-password工具生成elastic密碼:

bin/elasticsearch-reset-password -u elastic

然後,用bin/elasticsearch-create-enrollment-token工具為 Kibana 創建一個註冊令牌:

bin/elasticsearch-create-enrollment-token -s kibana

更好地保護系統索引

系統索引為 Elastic 功能存儲配置和內部數據。一般來說,系統索引僅保留供這些功能內部使用。雖然有可能,但直接訪問或改變系統索引會導致不穩定和其他問題。
在 Elasticsearch 8.0 中做了一些改變來保護系統索引不被直接訪問。要訪問系統索引的話,用戶現在必須把allow_restricted_indices權限設置為true。
superuser角色也不再給予系統索引的寫入權限。因此,內置的elasticsuperuser 默認不能改變系統索引。
此後,開發者應使用 Kibana 或相關的 Elasticsearch APIs 來管理某個功能的數據,而不是訪問系統索引。如果你直接訪問系統索引,Elasticsearch 將在 API 響應的 header 中和廢棄日誌中返回警告。
新的 KNN 搜索 API
在 Elasticsearch 8.0 中推出了 KNN 搜索 API 的技術預覽版。通過使用dense_vector字段,k-nearest neighbor(KNN)搜索可以找到與查詢向量最近的 k 個向量(這是由相似度指標來衡量的)。KNN 通常被用來支持推薦引擎和基於自然語言處理(NLP)算法的相關性排名。
以前,Elasticsearch 只支持精確的 KNN 搜索,使用帶向量函數的script_score查詢。雖然這種方法保證了準確的結果,但它往往導致搜索速度緩慢,而且在大型數據集上不能很好地擴展。作為對較慢的索引和不完美的準確性的交換,新的 KNN 搜索 API 讓你在更大的數據集上以更快的速度運行近似的 KNN 搜索。
為keyword、match_only_text和text字段節省存儲空間
該版本更新了倒排索引,這是一個內部數據結構,可以使用更節省空間的編碼。這一變化將使keyword、match_only_text字段以及text字段受益。在使用應用程序日誌的基準測試中,這一轉變為message字段(映射為match_only_text)的索引大小減少了 14.4%,總體上減少了 3.5% 的磁盤占用空間。
加快geo_point、geo_shape和範圍字段索引速度
新版本優化了多維點(multi-dimensional points)的索引速度,多維點是用於geo_point、geo_shape和範圍字段的內部數據結構。Lucene 級別的基準測試顯示,這些字段類型的索引速度提高了 10-15%。主要由這些字段組成的 Elasticsearch 索引和數據流可能會在索引速度方面有顯著的改進。
PyTorch 模型支持自然語言處理(NLP)
現在可以上傳在 Elasticsearch 之外訓練的 PyTorch 模型,並使用它們進行推理。第三方模型支持為 Elastic Stack 帶來了現代自然語言處理(NLP)和搜索用例。
其他變化
Aggregations:

刪除鄰接 matrix 設置#46327(issues:#46257,#46324)

刪除MovingAverage管道聚合#39328

刪除棄用的_time和_term排序#39450

刪除棄用的日期歷史間隔#75000

Allocation:

刪除include_relocations設置#47717(issues:#46079,#47443)

Analysis:

清理分析中的版本化棄用#41560(issue:#41164)

刪除預先配置的delimited_payload_filter#43686(issues:#41560,#43684)

Authentication:

除非明確禁用,否則始終添加文件和本機 Realm#69096(issue:#50892)

默認情況下不要在 Policy 中設置 NameID 格式#44090(issue:#40353)

為 Realm 配置強制設置順序#51195(issue:#37614)

Cluster Coordination:

刪除連接超時#60873(issue:#60872)

刪除對延遲狀態恢復掛起主控器的支持#53845(issue:#51806)

Distributed:

刪除同步刷新#50882(issues:#50776,#50835)

刪除cluster.remote.connect設置#54175(issue:#53924)

Engine:

強制合併應該拒絕設置了only_expunge_deletes和max_num_segments的請求#44761(issue:#43102)

刪除每個類型的索引統計#47203(issue:#41059)

移除 translog 保留設置#51697(issue:#50775)

Features/CAT APIs:

為_cat/indices刪除廢棄的local參數#64868(issue:#62198)

為_cat/shards刪除廢棄的local參數#64867(issue:#62197)

Features/ILM+SLM:

默認cluster.routing.allocation.enforce_default_tier_preference為true#79275(issues:#76147,#79210)

Features/Indices APIs

將prefer_v2_templates參數默認值設為true#55489(issues:#53101,#55411)

刪除棄用的_upgradeAPI#64732(issue:#21337)

從 REST 層移除參數include_type_name

刪除索引模板中的template字段#49460(issue:#21009)

Infra/Core

從數據路徑中刪除nodes/0文件夾前綴

刪除bootstrap.system_call_filter設置#72848

刪除node.max_local_storage_nodes#42428(issue:#42426)

刪除 Joda 依賴#79007

刪除命名日期/時間格式的駝峰式大小寫#60044

……

Packaging

刪除 SysV 初始化支持#51716

刪除對JAVA_HOME的支持#69149

需要 Java 17 才能運行 Elasticsearch#79873

……

更多詳情可查看:https://www.elastic.co/cn/blog/whats-new-elastic-8-0-0

往期精彩回顧



回升!PHP重返前十2021年JavaScript明星項目盤點計算機史上最瘋狂一幕

覺得不錯,請點個在看呀

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 鑽石舞台 的頭像
    鑽石舞台

    鑽石舞台

    鑽石舞台 發表在 痞客邦 留言(0) 人氣()