Elasticsearch 8.x 正式發(fā)布!
Elasticsearch 是一個(gè)基于 Lucene 庫(kù)的搜索引擎。它提供了一個(gè)分布式、支持多租戶的全文搜索引擎,具有 HTTP Web 接口和無(wú)模式 JSON 文檔。Elasticsearch 是用 Java 開發(fā)的,并在 Apache 許可證下作為開源軟件發(fā)布。官方客戶端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和許多其他語(yǔ)言中都是可用的。

7.x REST API 兼容性
8.0 為 Elasticsearch REST APIs 引入了一些重大的變化。雖然更新你的應(yīng)用程序以適應(yīng)這些變化十分重要,但在升級(jí)后尋找和更新每一個(gè) API 調(diào)用可能對(duì)開發(fā)者而言十分痛苦且容易出錯(cuò)。為了使這個(gè)過(guò)程變得更加容易,Elasticsearch 已經(jīng)在 REST API 中增加了對(duì) 7.x 兼容性 header 的支持。這些可選的 header 文件讓你向 8.0 集群發(fā)出 7.x 兼容的請(qǐng)求,并收到 7.x 兼容的響應(yīng)。
雖然官方仍然建議開發(fā)者更新你的應(yīng)用程序以使用原生的 8.0 請(qǐng)求和響應(yīng),但 7.x API 兼容 header 文件讓你可以在更長(zhǎng)的時(shí)間內(nèi)安全地進(jìn)行這些更改。
安全功能在默認(rèn)情況下被啟用和配置
在沒有安全保障的情況下運(yùn)行 Elasticsearch 會(huì)讓你的集群暴露在任何可以向 Elasticsearch 發(fā)送請(qǐng)求的用戶面前。在以前的版本中,你必須明確地啟用 Elasticsearch 的安全功能,如認(rèn)證、授權(quán)和網(wǎng)絡(luò)加密(TLS)。從 Elasticsearch 8.0 開始,當(dāng)?shù)谝淮螁?dòng) Elasticsearch 時(shí),安全功能被默認(rèn)啟用和配置。
在啟動(dòng)時(shí),Elasticsearch 8.0 會(huì)生成注冊(cè)令牌,你可以用它來(lái)連接 Kibana 實(shí)例或在安全的 Elasticsearch 集群中注冊(cè)其他節(jié)點(diǎn),而無(wú)需生成安全證書或更新 YAML 配置文件。只需在啟動(dòng)新節(jié)點(diǎn)或 Kibana 實(shí)例時(shí)使用生成的注冊(cè)令牌,Elastic Stack 就會(huì)為你處理所有安全配置。
如果你在 Linux ARM 或 macOS M1 等 arch64 平臺(tái)上從歸檔中安裝 Elasticsearch,那么在首次啟動(dòng)節(jié)點(diǎn)時(shí),不會(huì)自動(dòng)生成 elastic 用戶密碼和 Kibana 注冊(cè)令牌。節(jié)點(diǎn)啟動(dòng)后,需要用 bin/elasticsearch-reset-password 工具生成 elastic 密碼:
bin/elasticsearch-reset-password -u elastic
然后,用 bin/elasticsearch-create-enrollment-token 工具為 Kibana 創(chuàng)建一個(gè)注冊(cè)令牌:
bin/elasticsearch-create-enrollment-token -s kibana
更好地保護(hù)系統(tǒng)索引
系統(tǒng)索引為 Elastic 功能存儲(chǔ)配置和內(nèi)部數(shù)據(jù)。一般來(lái)說(shuō),系統(tǒng)索引僅保留供這些功能內(nèi)部使用。雖然有可能,但直接訪問(wèn)或改變系統(tǒng)索引會(huì)導(dǎo)致不穩(wěn)定和其他問(wèn)題。
在 Elasticsearch 8.0 中做了一些改變來(lái)保護(hù)系統(tǒng)索引不被直接訪問(wèn)。要訪問(wèn)系統(tǒng)索引的話,用戶現(xiàn)在必須把 allow_restricted_indices 權(quán)限設(shè)置為 true。
superuser 角色也不再給予系統(tǒng)索引的寫入權(quán)限。因此,內(nèi)置的 elastic superuser 默認(rèn)不能改變系統(tǒng)索引。
此后,開發(fā)者應(yīng)使用 Kibana 或相關(guān)的 Elasticsearch APIs 來(lái)管理某個(gè)功能的數(shù)據(jù),而不是訪問(wèn)系統(tǒng)索引。如果你直接訪問(wèn)系統(tǒng)索引,Elasticsearch 將在 API 響應(yīng)的 header 中和廢棄日志中返回警告。
新的 KNN 搜索 API
在 Elasticsearch 8.0 中推出了 KNN 搜索 API 的技術(shù)預(yù)覽版。通過(guò)使用 dense_vector 字段,k-nearest neighbor(KNN)搜索可以找到與查詢向量最近的 k 個(gè)向量(這是由相似度指標(biāo)來(lái)衡量的)。KNN 通常被用來(lái)支持推薦引擎和基于自然語(yǔ)言處理(NLP)算法的相關(guān)性排名。
以前,Elasticsearch 只支持精確的 KNN 搜索,使用帶向量函數(shù)的 script_score 查詢。雖然這種方法保證了準(zhǔn)確的結(jié)果,但它往往導(dǎo)致搜索速度緩慢,而且在大型數(shù)據(jù)集上不能很好地?cái)U(kuò)展。作為對(duì)較慢的索引和不完美的準(zhǔn)確性的交換,新的 KNN 搜索 API 讓你在更大的數(shù)據(jù)集上以更快的速度運(yùn)行近似的 KNN 搜索。
為 keyword、 match_only_text 和 text 字段節(jié)省存儲(chǔ)空間
keyword、 match_only_text 字段以及 text 字段受益。在使用應(yīng)用程序日志的基準(zhǔn)測(cè)試中,這一轉(zhuǎn)變?yōu)?nbsp;message 字段(映射為 match_only_text)的索引大小減少了 14.4%,總體上減少了 3.5% 的磁盤占用空間。加快 geo_point、geo_shape 和范圍字段索引速度
geo_point、geo_shape 和范圍字段的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。Lucene 級(jí)別的基準(zhǔn)測(cè)試顯示,這些字段類型的索引速度提高了 10-15%。主要由這些字段組成的 Elasticsearch 索引和數(shù)據(jù)流可能會(huì)在索引速度方面有顯著的改進(jìn)。另外,搜索公眾號(hào)互聯(lián)網(wǎng)架構(gòu)師后臺(tái)回復(fù)“2T”,獲取一份驚喜禮包。PyTorch 模型支持自然語(yǔ)言處理(NLP)
其他變化
刪除鄰接 matrix 設(shè)置 #46327 (issues: #46257, #46324)
刪除
MovingAverage管道聚合 #39328刪除棄用的
_time和_term排序 #39450刪除棄用的日期歷史間隔 #75000
刪除
include_relocations設(shè)置 #47717 (issues: #46079, #47443)
清理分析中的版本化棄用 #41560 (issue: #41164)
刪除預(yù)先配置的
delimited_payload_filter#43686 (issues: #41560, #43684)
除非明確禁用,否則始終添加文件和本機(jī) Realm #69096 (issue: #50892)
默認(rèn)情況下不要在 Policy 中設(shè)置 NameID 格式 #44090 (issue: #40353)
為 Realm 配置強(qiáng)制設(shè)置順序 #51195 (issue: #37614)
刪除連接超時(shí) #60873 (issue: #60872)
刪除對(duì)延遲狀態(tài)恢復(fù)掛起主控器的支持 #53845 (issue: #51806)
刪除同步刷新 #50882 (issues: #50776, #50835)
刪除
cluster.remote.connect設(shè)置 #54175 (issue: #53924)
強(qiáng)制合并應(yīng)該拒絕設(shè)置了
only_expunge_deletes和max_num_segments的請(qǐng)求 #44761 (issue: #43102)刪除每個(gè)類型的索引統(tǒng)計(jì) #47203 (issue: #41059)
移除 translog 保留設(shè)置 #51697 (issue: #50775)
為
_cat/indices刪除廢棄的local參數(shù) #64868 (issue: #62198)為
_cat/shards刪除廢棄的local參數(shù) #64867 (issue: #62197)
默認(rèn)
cluster.routing.allocation.enforce_default_tier_preference為true#79275 (issues: #76147, #79210)
將
prefer_v2_templates參數(shù)默認(rèn)值設(shè)為true#55489 (issues: #53101, #55411)刪除棄用的
_upgradeAPI #64732 (issue: #21337)從 REST 層移除參數(shù)
include_type_name刪除索引模板中的
template字段 #49460 (issue: #21009)
從數(shù)據(jù)路徑中刪除
nodes/0文件夾前綴刪除
bootstrap.system_call_filter設(shè)置 #72848刪除
node.max_local_storage_nodes#42428 (issue: #42426)刪除 Joda 依賴 #79007
刪除命名日期/時(shí)間格式的駝峰式大小寫 #60044
……
刪除 SysV 初始化支持 #51716
刪除對(duì)
JAVA_HOME的支持 #69149需要 Java 17 才能運(yùn)行 Elasticsearch #79873
正文結(jié)束
1.心態(tài)崩了!稅前2萬(wàn)4,到手1萬(wàn)4,年終獎(jiǎng)扣稅方式1月1日起施行~
2.深圳一普通中學(xué)老師工資單曝光,秒殺程序員,網(wǎng)友:敢問(wèn)是哪個(gè)學(xué)校畢業(yè)的?
3.從零開始搭建創(chuàng)業(yè)公司后臺(tái)技術(shù)棧
5.清華大學(xué):2021 元宇宙研究報(bào)告!
6.為什么國(guó)內(nèi) 996 干不過(guò)國(guó)外的 955呢?

