文| 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)和搜索用例。其他變化
刪除鄰接 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明星項目盤點計算機史上最瘋狂一幕
覺得不錯,請點個在看呀