Elasticsearch 是一個(gè)基于 Lucene 庫(kù)的搜索引擎。它提供了一個(gè)分布式、支持多租戶的全文搜索引擎,具有 HTTP Web 接口和無(wú)模式 JSON 文檔。Elasticsearch 是用 Java 開(kāi)發(fā)的,并在 Apache 許可證下作為開(kāi)源軟件發(fā)布。官方客戶端在 Java、.NET(C#)、PHP、Python、Apache Groovy、Ruby 和許多其他語(yǔ)言中都是可用的。
時(shí)隔近三年,Elasticsearch 8 正式發(fā)布,新增的功能包括:7.x REST API 兼容性
8.0 為 Elasticsearch REST APIs 引入了一些重大的變化。雖然更新你的應(yīng)用程序以適應(yīng)這些變化十分重要,但在升級(jí)后尋找和更新每一個(gè) API 調(diào)用可能對(duì)開(kāi)發(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)。雖然官方仍然建議開(kāi)發(fā)者更新你的應(yīng)用程序以使用原生的 8.0 請(qǐng)求和響應(yīng),但 7.x API 兼容 header 文件讓你可以在更長(zhǎng)的時(shí)間內(nèi)安全地進(jìn)行這些更改。安全功能在默認(rèn)情況下被啟用和配置
在沒(méi)有安全保障的情況下運(yùn)行 Elasticsearch 會(huì)讓你的集群暴露在任何可以向 Elasticsearch 發(fā)送請(qǐng)求的用戶面前。在以前的版本中,你必須明確地啟用 Elasticsearch 的安全功能,如認(rèn)證、授權(quán)和網(wǎng)絡(luò)加密(TLS)。從 Elasticsearch 8.0 開(kāi)始,當(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ú)需生成安全證書(shū)或更新 YAML 配置文件。只需在啟動(dòng)新節(jié)點(diǎn)或 Kibana 實(shí)例時(shí)使用生成的注冊(cè)令牌,Elastic Stack 就會(huì)為你處理所有安全配置。已知問(wèn)題:-
如果你在 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)索引的寫(xiě)入權(quán)限。因此,內(nèi)置的elastic
superuser 默認(rèn)不能改變系統(tǒng)索引。此后,開(kāi)發(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ǔ)空間
該版本更新了倒排索引,這是一個(gè)內(nèi)部數(shù)據(jù)結(jié)構(gòu),可以使用更節(jié)省空間的編碼。這一變化將使keyword
、match_only_text
字段以及text
字段受益。在使用應(yīng)用程序日志的基準(zhǔn)測(cè)試中,這一轉(zhuǎn)變?yōu)?/span>message
字段(映射為match_only_text
)的索引大小減少了 14.4%,總體上減少了 3.5% 的磁盤(pán)占用空間。
加快geo_point
、geo_shape
和范圍字段索引速度
新版本優(yōu)化了多維點(diǎn)(multi-dimensional points)的索引速度,多維點(diǎn)是用于geo_point
、geo_shape
和范圍字段的內(nèi)部數(shù)據(jù)結(jié)構(gòu)。Lucene 級(jí)別的基準(zhǔn)測(cè)試顯示,這些字段類型的索引速度提高了 10-15%。主要由這些字段組成的 Elasticsearch 索引和數(shù)據(jù)流可能會(huì)在索引速度方面有顯著的改進(jìn)。PyTorch 模型支持自然語(yǔ)言處理(NLP)
現(xiàn)在可以上傳在 Elasticsearch 之外訓(xùn)練的 PyTorch 模型,并使用它們進(jìn)行推理。第三方模型支持為 Elastic Stack 帶來(lái)了現(xiàn)代自然語(yǔ)言處理(NLP)和搜索用例。其他變化
Aggregations:-
刪除鄰接 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) -
刪除棄用的
_upgrade
API#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í)間格式的駝峰式大小寫(xiě)#60044
-
……
-
刪除 SysV 初始化支持#51716
-
刪除對(duì)
JAVA_HOME
的支持#69149 -
需要 Java 17 才能運(yùn)行 Elasticsearch#79873
原文標(biāo)題:重磅!Elasticsearch 8 正式發(fā)布!
文章出處:【微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
開(kāi)源軟件
+關(guān)注
關(guān)注
0文章
210瀏覽量
16021 -
JAVA
+關(guān)注
關(guān)注
19文章
2980瀏覽量
105732 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3305瀏覽量
58215
原文標(biāo)題:重磅!Elasticsearch 8 正式發(fā)布!
文章出處:【微信號(hào):LinuxHub,微信公眾號(hào):Linux愛(ài)好者】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
SpringBoot整合ElasticSearch

linux安裝配置ElasticSearch之源碼安裝
載譽(yù)而歸,重磅發(fā)布!潤(rùn)和軟件亮相2022開(kāi)放原子全球開(kāi)源峰會(huì)
開(kāi)源協(xié)議、開(kāi)源貢獻(xiàn)協(xié)議與OpenHarmony
你們知道BoostKit開(kāi)源軟件是怎么來(lái)的嗎?
ElasticSearch是什么?應(yīng)用場(chǎng)景是什么?
Elasticsearch保姆級(jí)入門

SpringBoot 連接ElasticSearch的使用方式
Rust編寫(xiě)的首個(gè)Postgres基礎(chǔ)Elasticsearch開(kāi)源替代品問(wèn)世

Elasticsearch 再次開(kāi)源

評(píng)論