Elasticsearch簡介是什么,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。
創(chuàng)新互聯(lián)是一家專業(yè)提供中牟企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計、成都做網(wǎng)站、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為中牟眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。
Elasticsearch7.2系列文章:https://www.xugj520.cn/category/ES/
為了搜索和分析,你懂得?。?!
Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎。Logstash和Beats有助于收集,聚合和豐富您的數(shù)據(jù)并將其存儲在Elasticsearch中。Kibana使您能夠以交互方式探索,可視化和分享數(shù)據(jù)洞察,并管理和監(jiān)控堆棧。Elasticsearch是索引,搜索和分析魔術(shù)發(fā)生的地方。
Elasticsearch為所有類型的數(shù)據(jù)提供實時搜索和分析。無論您是結(jié)構(gòu)化文檔還是非結(jié)構(gòu)化文本,數(shù)字?jǐn)?shù)據(jù)或地理空間數(shù)據(jù),Elasticsearch都可以以支持快速搜索的方式有效地存儲和索引它。您可以遠遠超出簡單的數(shù)據(jù)檢索和聚合信息,以發(fā)現(xiàn)數(shù)據(jù)中的趨勢和模式。隨著您的數(shù)據(jù)和查詢量的增長,Elasticsearch的分布式特性使您的部署能夠與其一起無縫地增長。
雖然不是每個問題都是搜索問題,但Elasticsearch提供了處理各種用例數(shù)據(jù)的速度和靈活性:
將搜索框添加到應(yīng)用或網(wǎng)站
存儲和分析日志,指標(biāo)和安全事件數(shù)據(jù)
使用機器學(xué)習(xí)實時自動建模數(shù)據(jù)行為
使用Elasticsearch作為存儲引擎自動化業(yè)務(wù)工作流程
使用Elasticsearch作為地理信息系統(tǒng)(GIS)管理,集成和分析空間信息
使用Elasticsearch作為生物信息學(xué)研究工具存儲和處理遺傳數(shù)據(jù) 我們對人們使用搜索的新穎方式感到驚訝。但是,無論您的用例是否與其中一個相似,或者您使用Elasticsearch來解決新問題,您在Elasticsearch中處理數(shù)據(jù),文檔和索引的方式都是相同的。
Elasticsearch是一個分布式文檔存儲。Elasticsearch不是將信息存儲為列數(shù)據(jù)行,而是存儲已經(jīng)序列化為JSON文檔的復(fù)雜數(shù)據(jù)結(jié)構(gòu)。當(dāng)群集中有多個Elasticsearch節(jié)點時,存儲的文檔將分布在群集中,并且可以從任何節(jié)點立即訪問。
存儲文檔時,它會在1秒內(nèi)實時索引并完全可搜索。Elasticsearch使用稱為倒排索引的數(shù)據(jù)結(jié)構(gòu),支持非??焖俚娜乃阉?。倒排索引列出任何文檔中出現(xiàn)的每個唯一單詞,并標(biāo)識每個單詞出現(xiàn)的所有文檔。
索引可以被視為優(yōu)化的文檔集合,每個文檔都是字段的集合,這些字段是包含數(shù)據(jù)的鍵值對。默認情況下,Elasticsearch會為每個字段中的所有數(shù)據(jù)編制索引,并且每個索引字段都具有專用的優(yōu)化數(shù)據(jù)結(jié)構(gòu)。例如,文本字段存儲在反向索引中,數(shù)字和地理字段存儲在BKD樹中。使用每個字段的數(shù)據(jù)結(jié)構(gòu)來匯編和返回搜索結(jié)果的能力使Elasticsearch如此之快。
Elasticsearch還具有無模式的能力,這意味著可以索引文檔而無需顯式指定如何處理文檔中可能出現(xiàn)的每個不同字段。啟用動態(tài)映射后,Elasticsearch會自動檢測并向索引添加新字段。這種默認行為使您可以輕松索引和瀏覽數(shù)據(jù) - 只需開始索引文檔,Elasticsearch將檢測并將布爾值,浮點和整數(shù)值,日期和字符串映射到相應(yīng)的Elasticsearch數(shù)據(jù)類型。
但是,最終,您比Elasticsearch更了解您的數(shù)據(jù)以及您希望如何使用它。您可以定義規(guī)則來控制動態(tài)映射并顯式定義映射,以完全控制字段的存儲和索引方式。
定義自己的映射使您能夠:
區(qū)分全文字符串字段和精確值字符串字段
執(zhí)行特定于語言的文本分析
優(yōu)化字段以進行部分匹配
使用自定義日期格式
使用諸如geo_point和geo_shape無法自動檢測的數(shù)據(jù)類型 為不同目的以不同方式索引相同字段通常很有用。例如,您可能希望將字符串字段索引為全文搜索的文本字段和用于排序或聚合數(shù)據(jù)的關(guān)鍵字字段?;蛘?,您可以選擇使用多個語言分析器來處理包含用戶輸入的字符串字段的內(nèi)容。
在索引期間應(yīng)用于全文字段的分析鏈也在搜索時使用。查詢?nèi)淖侄螘r,查詢文本在索引中查找術(shù)語之前會進行相同的分析。
雖然您可以將Elasticsearch用作文檔存儲并檢索文檔及其元數(shù)據(jù),但真正的強大功能來自于能夠輕松訪問基于Apache Lucene搜索引擎庫構(gòu)建的全套搜索功能。
Elasticsearch提供了一個簡單,一致的REST API,用于管理集群,索引和搜索數(shù)據(jù)。出于測試目的,您可以直接從命令行或通過Kibana中的Developer Console輕松提交請求。從您的應(yīng)用程序中,您可以使用 Elasticsearch客戶端 作為您選擇的語言:Java,JavaScript,Go,.NET,PHP,Perl,Python或Ruby。
搜索您的數(shù)據(jù)Elasticsearch REST API支持結(jié)合了兩者的結(jié)構(gòu)化查詢,全文查詢和復(fù)雜查詢。結(jié)構(gòu)化查詢類似于可以在SQL中構(gòu)造的查詢類型。例如,您可以搜索索引中的gender和age字段,并按字段employee對匹配項進行排序hire_date。全文查詢查找與查詢字符串匹配的所有文檔,并按相關(guān)性對其進行返回 - 與搜索字詞的匹配程度。
除了搜索單個術(shù)語外,您還可以執(zhí)行短語搜索,相似性搜索和前綴搜索,并獲取自動填充建議。
是否要搜索地理空間或其他數(shù)字?jǐn)?shù)據(jù)?Elasticsearch將優(yōu)化數(shù)據(jù)結(jié)構(gòu)中的非文本數(shù)據(jù)編入索引,以支持高性能的地理和數(shù)字查詢。
您可以使用Elasticsearch的全面JSON樣式查詢語言(查詢DSL)訪問所有這些搜索功能。您還可以構(gòu)建SQL樣式的查詢以在Elasticsearch內(nèi)本地搜索和聚合數(shù)據(jù),JDBC和ODBC驅(qū)動程序使各種第三方應(yīng)用程序能夠通過SQL與Elasticsearch進行交互。
分析您的數(shù)據(jù)通過Elasticsearch聚合,您可以構(gòu)建復(fù)雜的數(shù)據(jù)摘要,并深入了解關(guān)鍵指標(biāo),模式和趨勢。聚合使您無法找到眾所周知的“大海撈針”,而是回答以下問題:
大海撈針有多少針?
針的平均長度是多少?
根據(jù)制造商細分的針的中位長度是多少?
在過去的六個月里,每天有多少針被加到草堆里? 您還可以使用聚合來回答更微妙的問題,例如:
你最受歡迎的針頭制造商是什么?
是否有任何異?;虍惓5尼槄?? 由于聚合利用了用于搜索的相同數(shù)據(jù)結(jié)構(gòu),因此它們也非???。這使您可以實時分析和可視化數(shù)據(jù)。您的報告和儀表板會隨著數(shù)據(jù)更改而更新,以便您可以根據(jù)最新信息采取措施。
更重要的是,聚合與搜索請求一起運行。您可以在同一數(shù)據(jù)中,在單個請求中同時搜索文檔,過濾結(jié)果和執(zhí)行分析。并且因為聚合是在特定搜索的上下文中計算的,所以您不僅要顯示所有70針的數(shù)量,而是顯示與用戶的搜索條件匹配的70針的數(shù)量 - 例如,所有尺寸70 不粘刺繡針。
但是等等,還有更多的想要自動分析您的時間序列數(shù)據(jù)?您可以使用 機器學(xué)習(xí)功能在數(shù)據(jù)中創(chuàng)建正常行為的準(zhǔn)確基線,并識別異常模式。通過機器學(xué)習(xí),您可以檢測到:
與值,計數(shù)或頻率的時間偏差相關(guān)的異常 統(tǒng)計稀缺 一個人口的不尋常行為 最好的部分?您無需指定算法,模型或其他與數(shù)據(jù)科學(xué)相關(guān)的配置即可完成此操作。
Elasticsearch始終可用,可根據(jù)您的需求進行擴展。它通過自然分配來實現(xiàn)這一點。您可以將服務(wù)器(節(jié)點)添加到群集以增加容量,Elasticsearch會自動在所有可用節(jié)點上分配數(shù)據(jù)和查詢負載。無需徹底檢查您的應(yīng)用程序,Elasticsearch了解如何平衡多節(jié)點群集以提供規(guī)模和高可用性。節(jié)點越多,越好。
這是如何運作的?在封面下,Elasticsearch索引實際上只是一個或多個物理分片的邏輯分組,其中每個分片實際上是一個自包含的索引。通過跨多個分片在索引中分發(fā)文檔,并將這些分片分布在多個節(jié)點上,Elasticsearch可以確保冗余,這可以防止硬件故障,并在節(jié)點添加到群集時提高查詢?nèi)萘?。隨著集群的增長(或收縮),Elasticsearch會自動遷移分片以重新平衡集群。
有兩種類型的分片:原色和副本。索引中的每個文檔都屬于一個主分片。副本分片是主分片的副本。副本提供數(shù)據(jù)的冗余副本,以防止硬件故障并增加服務(wù)讀取請求(如搜索或檢索文檔)的容量。
索引中的主分片數(shù)在創(chuàng)建索引時是固定的,但副本分片的數(shù)量可以隨時更改,而不會中斷索引或查詢操作。
這取決于... ...
關(guān)于分片大小和為索引配置的主分片數(shù)量,存在許多性能考慮因素和折衷方案。分片越多,維護這些索引的開銷就越大。分片大小越大,當(dāng)Elasticsearch需要重新平衡群集時,移動分片所需的時間越長。
查詢大量小分片使得每個分片的處理速度更快,但查詢意味著更多的開銷,因此查詢較少數(shù)量的較大分片可能會更快。簡而言之......這取決于。
作為一個起點:
旨在將平均分片大小保持在幾GB到幾十GB之間。對于具有基于時間的數(shù)據(jù)的用例,通常會看到20GB到40GB范圍內(nèi)的分片。
避免大量碎片問題。節(jié)點可以容納的分片數(shù)量與可用堆空間成比例。作為一般規(guī)則,每GB堆空間的分片數(shù)應(yīng)小于20。 確定用例的最佳配置的最佳方法是 使用您自己的數(shù)據(jù)和查詢進行測試。
在容災(zāi)的情況下出于性能原因,群集中的節(jié)點需要位于同一網(wǎng)絡(luò)上。在不同數(shù)據(jù)中心的節(jié)點之間平衡群集中的分片只需要太長時間。但是高可用性架構(gòu)要求您避免將所有雞蛋放在一個籃子里。如果在一個位置發(fā)生重大中斷,則另一個位置的服務(wù)器需要能夠接管。無縫連接。答案?跨群集復(fù)制(CCR)。
CCR提供了一種自動將索引從主群集同步到可作為熱備份的輔助遠程群集的方法。如果主群集出現(xiàn)故障,則輔助群集可以接管。您還可以使用CCR創(chuàng)建輔助群集,以便在地理位置接近用戶時提供讀取請求。
跨群集復(fù)制是主動 - 被動的。主群集上的索引是活動的leader索引并處理所有寫入請求。復(fù)制到輔助群集的索引是只讀關(guān)注者。
維護和管理與任何企業(yè)系統(tǒng)一樣,您需要工具來保護,管理和監(jiān)控您的Elasticsearch集群。集成到Elasticsearch中的安全性,監(jiān)控和管理功能使您可以將Kibana 用作管理集群的控制中心。類似的特征數(shù)據(jù)匯總和指標(biāo)生命周期管理 幫助您明智隨著時間的推移管理您的數(shù)據(jù)。
看完上述內(nèi)容,你們掌握Elasticsearch簡介是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!