ElasticSearch相關術語介紹

1.RESTful風格程序

 	REST(英文全稱為:"Representational State Transfer")指的是一組架構約束條件和原則。它是一種軟件架構風格(約束條件和原則的集合,但并不是標準)。 
REST通過資源的角度觀察網絡,以URI對網絡資源進行唯一標識,響應端根據請求端的不同需求,通過無狀態通信,對其請求的資源進行表述。滿足REST約束條件和原則的架構或接口,就被稱為是RESTful架構或RESTful接口。Web應用程序最重要的REST原則是:(1)客戶端和服務器之間的交互在請求之間是無狀態的;(2)從客戶端到服務器的每個請求都必須包含理解請求所必需的信息;(3)如果服務器在請求之間的任何時間點重啟,客戶端不會得到通知;(4)無狀態請求可以由任何可用服務器回答,這十分適合云計算之類的環境,客戶端可以緩存數據以改進性能。在服務器端,應用程序狀態和功能可以分為各種資源。資源是一個有趣的概念實體,它向客戶端公開。資源的例子有:應用程序對象、數據庫記錄、算法等等。每個資源都使用URI(Universal Resource Identifier)得到一個唯一的地址。所有資源都共享統一的接口,以便在客戶端和服務器之間傳輸狀態。使用的是標準的HTTP方法,比如GET、PUT、POST和DELETE等。我們可以向Elasticsearch發送數據或者其返回數據均是JSON(英文全稱為:"JavaScript Object Notation")格式。

2.JSON快速入門

什么是JSON:JSON是一種輕量級的文本數據交換格式而非編程語言,其語法只支持字符串,數值,布爾值及null以及在此基礎上的對象和數組。舉個例子:基礎數據類型(支持的基礎數據類型參考下表):name = "oldboy"age = 43數組:teachers = ["oldboy", "蒼老師","加藤鷹","小園梨央"]對象:obs = {"name": "oldboy","age":43,"habby":"linux,象棋,跑步"}推薦閱讀:https://www.w3cschool.cn/json/json-intro.html
數據類型舉例說明
字符串“oldboy”使用雙引號引用字符串
數值2021值得注意的是,如果使用雙引號"2021",則其為字符串而非數字喲~
布爾值true/false只有真(true)和假(false)兩個值。
空值null表示一個空值。

1.文檔(Document)

文檔就是用戶存在ElasticSearch的一些數據,它是ElasticSearch中存儲數據的最小單元。文檔類似于MySQL數據庫中表中的一行數據。每個文檔都有唯一的"_id"標識,我們可以自定義"_id"(不推薦),如果不指定ES也會自動生成。一個文檔是一個可被索引的基礎信息單元,也就是一條數據。在一個"index/_doc"里面,我們可以存儲任意多的文檔。文檔是以JSON(Javascript Object Notaion)格式來表示,而JSON是一個到處存在的互聯網數據交互格式。JSON比XML更加輕量級,目前JSON已經成為互聯網事實的數據交互標準了,幾乎是所有主流的編程語言都支持。

2.字段(Filed)

	相當于數據庫表的字段,對文檔數據根據不同屬性進行的分類標識。在ES中,Document就是一個Json Object,一個json objec其實是由多個字段組成的,每個字段它由不同的數據類型。推薦閱讀:https://www.elastic.co/guide/en/elasticsearch/reference/7.12/mapping-types.html

3.索引(index)

	一個索引就是一個擁有相似特征的文檔(Document)的集合。假設你的公司是做電商的,可以將數據分為客戶,產品,訂單等多個類別,在ES數據庫中就對應多個索引。ES索引、文檔、字段關系小結:一個索引里面存儲了很多的Document 文檔,一個文檔就是一個json object,一個json object是由多個不同的filed字段組成;Elasticsearch索引的精髓:一切設計都是為了提高搜索的性能。換句話說,在ES存儲的數據,萬物皆索引,如果數據沒有索引則無法查詢數據。

4.分片(Shards)----> (先講解上面3個概念)

	我們假設平均1個文檔占用2k大小,那么按照utf-8對中文的字符編碼,該文檔能存儲682(2 * 1024 / 3)個漢字。如果我們要存儲30億條數據,則需要使用5722GB(3000000000 * 2k,不足6T)存儲空間,一個索引可以存儲超出單個節點硬件限制的大量數據。比如,一個具有30億文檔數據的索引占據6TB的磁盤空間。如果一個集群有3臺服務器,單個節點的磁盤存儲空間僅有4T磁盤空間,很明顯某一個節點是無法存儲下6TB數據的。或者單個節點處理搜索請求,響應太慢。為了解決這個問題,elasticsearch提供了將索引劃分成多份的能力,每一份都稱之為分片。當你創建一個索引的時候,你可以指定你想要的分片數量。每個分片本身也是一個功能完善并且獨立的"索引",這個"索引"可以被放置到集群中的任何節點上。分片很重要,主要有兩方面的原因:(1)允許你水平分割/擴展你的內容容量,當然你也可以選擇垂直擴容;(2)允許你在各節點上的分片進行分布式,并行的操作,從而顯著提升性能(包括但不限于CPU,內存,磁盤,網卡的使用),最顯著的是吞吐量的提升;至于一個分片怎么分布,它的文檔怎樣聚合和搜索請求,是完全由elasticsearch管理的,對于作為用戶的你來說,這些都是透明的,無需過分關心。溫馨提示:一個Lucene索引我們在Elasticsearch稱作分片。一個ElasticSearch索引是分片的集合。當ElasticSearch在索引中搜索的時候,她發送查詢到每一個屬于索引的分片(Lucene索引),然后合并每個分片的結果到一個全局的結果集。

5.副本(Replicas)

	無論是在公司內部的物理機房,還是在云環境中,節點故障隨時都有可能發生,可能導致這些故障的原因包括但不限于服務器掉電,Raid陣列中的磁盤損壞,網卡損壞,同機柜交換機損壞等。在某個分片/節點不知為何就處于離線狀態,或者由于任何原因消失了,這種情況下,有一個故障轉移機制是非常有用并且是強烈推薦的。為此目的,elasticsearch允許你創建分片的一份或多份拷貝,這些拷貝叫做復制分片(我們也習慣稱之為“副本”)。副本之所以重要,主要有以下兩個原因:(1)在分片/節點失敗的情況下,提供了高可用性。因為這個原因,注意到復制分片從不與主分片(primary shard)置于同一個節點上是非常重要的;(2)擴展你的搜索量/吞吐量,因為搜索可以在所有的副本上并行運行;總之,每個索引可以被分配成多個分片。一個索引也可以被復制0次(意思是沒有副本分片,僅有主分片)或多次。一旦復制了,每個索引就有了主分片(作為復制源的原來的分片)和復制分片(主分片的拷貝)之別。分片和復制的數量可以在索引創建的時候指定。在索引創建之后,你可以在任何時候動態地改變復制的數量,但是你事后不能改變分片的數量。默認情況下,elasticsearch中的每個索引被分片1個主分片和1個復制分片,這樣的話一個索引總共就有2個分片,我們需要根據索引需求確定分片個數。

6.分配(Allocation)

	所謂的分配就是將分片分配給某個節點的過程,包括主分片或者副本。如果是副本,還包含從主分片復制數據的過程,這個過程由master節點完成的。

7.類型(type)

	在elasticsearch 5.x及更早的版本,在一個索引中,我們可以定義一種或多種類型。但在ES 7.x版本中,僅支持"_doc"類型。一個索引是你的索引的一個邏輯上的分類/分區,其語義完全由你來定,通常,會為具有一組共同字段的文檔定義一個類型。

8.映射(Mapping)

	mapping是處理數據的方式和規則方面做一些限制,如:某個字段的數據類型,默認值,分析器,是否被索引等等。這些都是映射里面可以設置的,其它就是處理ES里面數據的一些使用規則設置也叫做映射。按著最優規則處理數據對性能提高很大,因此才需要建立映射,并且需要思考如何建立映射才能對性能更好。值得注意的是,課程后面有相應的案例喲~

9.DSL概述

	Elasticsearch提供豐富且靈活的查詢語言叫做DSL查詢(Query DSL),它允許你構建更加復雜,強大的查詢。DSL(Domain Specific Language特定領域語言)以JSON請求體的形式出現。值得注意的是,下面由相關的案例。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/92834.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/92834.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/92834.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《從零構建大語言模型》學習筆記4,注意力機制1

《從零構建大語言模型》學習筆記4,自注意力機制1 文章目錄《從零構建大語言模型》學習筆記4,自注意力機制1前言一、實現一個簡單的無訓練權重的自注意力機制二、實現具有可訓練權重的自注意力機制1. 分步計算注意力權重2.實現自注意力Python類三、將單頭…

昇思+昇騰開發板+DeepSeek模型推理和性能優化

昇思昇騰開發板DeepSeek模型推理和性能優化 模型推理 流程: 權重加載 -> 啟動推理 -> 效果比較與調優 -> 性能測試 -> 性能優化 權重加載 如微調章節介紹,最終的模型包含兩部分:base model 和 LoRA adapter,其中base …

未給任務“Fody.WeavingTask”的必需參數“IntermediateDir”賦值。 WpfTreeView

c#專欄記錄: 報錯 未給任務“Fody.WeavingTask”的必需參數“IntermediateDir”賦值。 WpfTreeView 生成 解決辦法 清理和重新生成項目 完成上述配置后,嘗試執行以下步驟: 清理項目:刪除 bin 和 obj 文件夾。 重新生成項目&…

[Linux]學習筆記系列 -- [arm][lib]

文章目錄arch/arm/lib/delay.cregister_current_timer_delay 注冊當前定時器延遲read_current_timer 讀取當前定時器drivers/clocksource/timer-stm32.cstm32_clocksource_init STM32 平臺上初始化時鐘源https://github.com/wdfk-prog/linux-study arch/arm/lib/delay.c regis…

harbor倉庫搭建(配置https)

目錄 1. 環境準備 2. 配置https的原因 3. 生成ca證書 4. 搭建harbor倉庫 5. 訪問harbor 6. 修改加密算法 1. 環境準備 需要提前安裝docker和docker-compose,harbor倉庫版本越新,對應的docker和docker-compose版本越新。 主機IP192.168.48.19dock…

C++多線程服務器

C多線程服務器 因為自己同時在看多本書,之前看過《TCP/IP 網絡編程》一書,其中有一個自己編寫一個多線程服務器的例子,于是就把代碼直接抄了一變。 在學習網絡編程前需要先了解網絡的7層模型。 具體代碼如下: 服務器端&#xff1a…

【Pandas】常用數據處理技巧

一. 數據讀取 1.pd.to_csv & pd.read_csv 細節: 1.pd.read_csv 需要 ignore_index True or ,index_col0 否則會有列Unnamed0 2.pickle具有更快的讀取速度,與更小的體積。 讀取前N行(若不需獲取所有數據) pd.read_csv(…

Docker Compose 部署高可用 MongoDB 副本集集群(含 Keepalived + HAProxy 負載均衡)

Docker Compose 部署高可用 MongoDB 副本集集群(含 Keepalived HAProxy 負載均衡)背景與目標📋 環境規劃**服務器信息****軟件版本**部署步驟1. 創建目錄結構2、生成 keyFile(三臺機器內容必須一致)3. 準備 Keepalive…

MySQL(189)如何分析MySQL的鎖等待問題?

分析MySQL的鎖等待問題有助于發現和解決數據庫性能瓶頸。鎖等待問題通常會導致數據庫響應時間變長,影響系統的整體性能。以下是詳細深入的方法和代碼示例,幫助你分析和解決MySQL的鎖等待問題。 一、鎖的類型和概念 在MySQL中,主要有以下幾種鎖…

26.Scikit-learn實戰:機器學習的工具箱

Scikit-learn實戰:機器學習的工具箱 🎯 前言:機器學習界的"宜家家具" 還記得第一次逛宜家的感受嗎?琳瑯滿目的家具,每一件都有詳細的說明書,組裝簡單,樣式統一,關鍵是—…

wordpress文章摘要調用的3種方法

以下是WordPress文章摘要的3種調用方法: 1. 使用the_excerpt()函數 這是WordPress自帶的函數,用于調用文章摘要。如果文章有手動填寫的摘要,則會顯示手動摘要;如果沒有手動摘要,WordPress會自動從文章內容中提取前55個單詞作為摘…

java excel轉圖片常用的幾種方法

十分想念順店雜可。。。在 Java 中實現 Excel 轉圖片,常用的方法主要分為兩類:使用商業庫(簡單高效但可能收費)和使用開源庫組合(免費但實現復雜)。以下是幾種常用方案及實現思路:一、使用商業庫…

QT項目 -仿QQ音樂的音樂播放器(第五節)

目錄 一、CommonPage界?設置和顯示 二、自定義ListItemBox 三、支持hover效果 四、自定義VolumeTool 五、界面設置 六、頁面創建及彈出 七、繪制三角 一、CommonPage界面設置和顯示 void CommonPage::setCommonPageUI(const QString &title, const QString &imag…

wstool和git submodule優劣勢對比

wstool 和 git submodule 都可以用來管理項目中的外部源代碼依賴,但它們的設計理念、工作流程和適用場景有很大不同。 我們來深入對比一下它們的優勢和劣勢。 核心理念比喻 git submodule:像是在你的汽車設計圖紙中,直接嵌入了另一家公司&…

六、RuoYi-Cloud-Plus OSS文件上傳配置

1.前面我們完成了RuoYi-Cloud-Plus 部署及啟動,此刻已經可以正常訪問。 前面文章的專欄內容在這,感興趣可以看看。 https://blog.csdn.net/weixin_42868605/category_13023920.html 2.但現在雖然已經啟動成功,但有很多功能我們依舊用不了&a…

達夢數據庫日常運維命令

查詢數據庫表空間數據文件使用大小限制DECLARE K INT:(SELECT cast(PAGE()/1024 as varchar)); BEGIN SELECTF."PATH" 數據文件 ,F.CLIENT_PATH,G.NAME 所屬表空間,F.MAX_SIZE||M 文件擴展限制,(CASE F.AUTO_EXTEND WHEN 1 THEN 是 ELSE 否 END) 文件…

使用線性降維方法進行數據降維

在數據科學與機器學習的領域中,維度災難問題經常導致模型的性能下降。線性降維方法是一種常見的技術,用于在保留盡可能多的原始數據特征的同時,減少數據集的維度。這些方法通過將高維數據映射到低維空間來減少特征數量,從而加速模…

OpenCV圖像裁剪與 ROI 操作

在圖像處理領域,ROI(Region of Interest)區域感興趣操作是非常基礎而重要的一環。無論是進行目標檢測、圖像分割,還是簡單的圖像處理,都離不開對圖像某一區域的選取與處理。本文將結合 OpenCV 的 C 接口,詳…

關于AI應用案例計算機視覺、自然語言處理、推薦系統和生成式AI四大領域的詳細技術分析。

一、計算機視覺應用:實時物體檢測 案例描述:使用YOLOv8模型實現實時物體檢測系統,應用于安防監控場景。 1. 代碼示例(Python) python from ultralytics import YOLO import cv2# 加載預訓練模型 model YOLO("…

各個網絡層擁有的協議簡寫

OSI 七層模型(從下到上分別為物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層、應用層)是網絡通信的經典理論框架,每層都有其核心功能和對應的協議。以下是各層的主要協議列舉:1. 物理層(Physical Layer&#xff…