ElasticSearch 8.x 快速上手并了解核心概念

目錄

    • 核心概念
      • 概念總結
    • 常見操作
      • 索引的常見操作
      • 常見的數據類型
      • 指定索引庫字段類型`mapping`
      • 查看索引庫的字段類型
      • 最高頻使用的數據類型

核心概念

  • 在新版Elasticsearch中,文檔document就是一行記錄(json),而這些記錄存在于索引庫(index)中, 索引名稱必須是小寫
  • 與關系型數據庫對比
MysqlElastic Search
Table(水平分表)Index(不同分片)
RowDocument
ColumnField
  • index(索引)
    • 在新版本中的Elasticsearh中,索引的概念等同于Mysql中表的概念,Elasticsearch中的索引可以直接存儲數據
  • document(文檔)
    • 真正的數據,存儲一條數據就是一份文檔,存儲格式為JOSN,等同于mysql中的一條數據
  • shards(分片)
    • 數據量特大,沒有足夠大的硬盤空間來一次性存儲,且一次性搜索那么多的數據,響應跟不上
    • ES提供把數據進行分片存儲,這樣方便進行拓展和提高吞吐
  • replicas(副本)
    • 分片的拷貝,當主分片不可用的時候,副本就充當主分片進行使用
    • 索引分片的備份,shardreplica一般存儲在不同的節點上,用來提高可靠性
    • 案例
      • 假如Elasticsearch中的每個索引分配5個主分片和1個副本
      • 如果集群中至少有兩個節點,索引將會有5個主分片和另外5個復制分片(1個完全拷貝)這樣每個索引總共有10個分片

概念總結

  • 數據切分為多個分片是為了提高可處理數據的容量和方便后續水平擴展
  • 分片做副本是為了提高集群的穩定性,提高容災特性和吞吐量
  • 副本越多 數據越高可用,但是消耗的資源就越多
  • 分片越多數據就會越分散,避免數據過于集中導致某個節點壓力過大
  • 副本和分片的數量不一定是越多越好
    • 過多的分片,會占用大量的CPU以及內存等資源
    • 過多的副本,副本之間數據同步的會占用大量網絡資源等
  • ES默認為一個索引創建1個主分片和1個副本,在創建索引的時候使用settings屬性指定,每個分片必須有零到多個副本
  • 注意:索引一旦創建成功,主分片primary shard數量不可以變(只能重建索引),副本分片replica shard可以改變

常見操作

索引的常見操作

  • 查看索引列表
GET /_cat/indices?v=true&pretty
  • 查看分片情況
GET /_cat/shards?v=true&pretty
  • 創建索引(Create Index)
PUT /<index_name>
{"settings": {"number_of_shards": 1,"number_of_replicas": 1}
}
  • 查看索引是否存在( 結果是200 和 404)
HEAD /<index_name>
  • 獲取索引(Get Index)
GET /<index_name>
  • 更新索引設置(Update Index Settings)
PUT /<index_name>/_settings
{"settings": {"number_of_replicas": 2}
}
  • 刪除索引(Delete Index)
DELETE /<index_name>

常見的數據類型

  • Text類型:用于全文本搜索的文本類型
  • Keyword類型:用于精確匹配和聚合操作的關鍵字類型
  • Numeric類型:包括整數類型(long、integer、short、byte)和浮點數類型(double、float)
  • Date類型:用于存儲日期和時間的類型
  • Boolean類型:用于存儲布爾值(true或false)的類型
  • Binary類型:用于存儲二進制數據的類型
  • Array類型:用于存儲數組或列表數據的類型
  • Object類型:用于存儲復雜結構數據的類型

指定索引庫字段類型mapping

PUT /my_index
{"mappings": {"properties": {"id": {"type": "keyword"},"title": {"type": "text"},"price": {"type": "float"}}}
}

查看索引庫的字段類型

GET /<index_name>/_mappingGET /my_index/_mapping

最高頻使用的數據類型

  • text字段類型

    • text類型主要用于全文本搜索,適合存儲需要進行全文本分詞的文本內容,如文章、新聞等
    • text字段會對文本內容進行分詞處理,將文本拆分成獨立的詞項(tokens)進行索引
    • 分詞的結果會建立倒排索引,使搜索更加靈活和高效
    • text字段在搜索時會根據分詞結果進行匹配,并計算相關性得分,以便返回最佳匹配的結果
  • keyword字段類型

    • keyword類型主要用于精確匹配和聚合操作,適合存儲不需要分詞的精確值,如ID、標簽、關鍵字等
    • keyword字段不會進行分詞處理,而是將整個字段作為一個整體進行索引和搜索
    • 這使得搜索只能從精確的值進行匹配,而不能根據詞項對內容進行模糊檢索
    • keyword字段適合用于過濾和精確匹配,同時可以進行快速的基于精確值的聚合操作
  • 類型選擇

    • 在選擇text字段類型和keyword字段類型時,需要根據具體的需求進行權衡和選擇
    • 如果需要進行全文本檢索,并且希望根據分詞結果計算相關性得分,以獲得最佳的匹配結果,則選擇text字段類型
    • 如果需要進行精確匹配、排序或聚合操作,并且不需要對內容進行分詞,則選擇keyword字段類型

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

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

相關文章

優化 CRM 架構,解鎖企業競爭力密碼

引言 “在所有企業面臨的挑戰中&#xff0c;客戶關系管理無疑是最為關鍵的一環。” —— 彼得德魯克 在數字化浪潮席卷的當下&#xff0c;企業面臨著前所未有的機遇與挑戰。客戶關系管理&#xff08;CRM&#xff09;作為企業運營的核心環節&#xff0c;其架構的優劣直接影響著…

深入理解Docker和K8S

深入理解Docker和K8S Docker 是大型架構的必備技能&#xff0c;也是云原生核心。Docker 容器化作為一種輕量級的虛擬化技術&#xff0c;其核心思想&#xff1a;將應用程序及其所有依賴項打包在一起&#xff0c;形成一個可移植的單元。 容器的本質是進程&#xff1a; 容器是在…

list.forEach(s -> countService.refreshArticleStatisticInfo(s.getId())); 講解一下語法

這段代碼使用了Java中的forEach方法結合Lambda表達式來遍歷一個列表&#xff0c;并對列表中的每個元素執行特定操作。具體來說&#xff0c;它會遍歷列表中的每一個元素&#xff0c;并調用countService.refreshArticleStatisticInfo(s.getId())方法來刷新每個文章的統計信息。下…

AI開發者的算力革命:GpuGeek平臺全景實戰指南(大模型訓練/推理/微調全解析)

目錄 背景一、AI工業化時代的算力困局與破局之道1.1 中小企業AI落地的三大障礙1.2 GpuGeek的破局創新1.3 核心價值 二、GpuGeek技術全景剖析2.1 核心架構設計 三、核心優勢詳解?3.1 優勢1&#xff1a;工業級顯卡艦隊???3.2 優勢2&#xff1a;開箱即用生態?3.2.1 預置鏡像庫…

05算法學習_59. 螺旋矩陣 II

05算法學習_59. 螺旋矩陣 II 05算法學習_59. 螺旋矩陣 II題目描述&#xff1a;個人代碼&#xff1a;學習思路&#xff1a;第一種寫法&#xff1a;題解關鍵點&#xff1a; 個人學習時疑惑點解答&#xff1a; 05算法學習_59. 螺旋矩陣 II 力扣題目鏈接: 59. 螺旋矩陣 II 題目描…

JDK7Hashmap的頭插法造成的環問題

單線程下的擴容 多線程下的擴容 next&#xff1d;e 然后e的next變成e

JAVA|后端編碼規范

目錄 零、引言 一、基礎 二、集合 三、并發 四、日志 五、安全 零、引言 規范等級&#xff1a; 【強制】&#xff1a;強制遵守&#xff0c;來源于線上歷史故障&#xff0c;將通過工具進行檢查。【推薦】&#xff1a;推薦遵守&#xff0c;來源于日常代碼審查、開發人員反饋…

2025-05-21 Python深度學習5——數據讀取

文章目錄 1 數據準備2 Dataset2.1 自定義 Dataset2.2 使用示例 3 TensorBoard3.1 安裝3.2 標量可視化&#xff08;Scalars&#xff09;3.3 圖像可視化&#xff08;Images&#xff09;3.4 其他常用功能 4 transform4.1 ToTensor()4.2 Normalize()4.3 Resize()4.4 Compose()4.5 C…

5月21日學習筆記

MYSQL三層結構 表1 數據庫DB1 表2 數據庫管理系統 客戶端命令終端&#xff08;Dos&#xff09; DBMS 數據庫DB2 表1 表2 數據庫………. Mysql數據庫-表的本質仍然是文件 表的一行稱之為一條記錄->在java程序中一行記錄往往使用對象表示 SQL語…

二十、面向對象底層邏輯-ServiceRegistry接口設計集成注冊中心

一、服務治理的基石接口 在微服務架構中&#xff0c;服務實例的動態注冊與發現是保證系統彈性的關鍵機制。Spring Cloud Commons模塊通過ServiceRegistry與Registration接口定義了服務注冊的標準化模型&#xff0c;為不同服務發現組件&#xff08;Eureka、Consul、Nacos等&…

DeepSeek:以開源之力,引領AI技術新風潮

在年春節&#xff0c;大語言模型DeepSeek如同一枚震撼彈&#xff0c;在全球范圍內引發了轟動&#xff0c;成功“破圈”&#xff0c;將中國的人工智能&#xff08;AI&#xff09;技術成果推向了世界舞臺。 開源策略&#xff1a;打破技術壁壘 在AI行業&#xff0c;OpenAI等巨頭…

完整改進RIME算法,基于修正多項式微分學習算子Rime-ice增長優化器,完整MATLAB代碼獲取

1 簡介 為了有效地利用霧狀冰生長的物理現象&#xff0c;最近開發了一種優化算法——霧狀優化算法&#xff08;RIME&#xff09;。它模擬硬霧狀和軟霧狀過程&#xff0c;構建硬霧狀穿刺和軟霧狀搜索機制。在本研究中&#xff0c;引入了一種增強版本&#xff0c;稱為修改的RIME…

PyTorch可視化工具——使用Visdom進行深度學習可視化

文章目錄 前置環境Visdom安裝并啟動VisdomVisdom圖形APIVisdom靜態更新API詳解通用參數說明使用示例Visdom動態更新API詳解1. 使用updateappend參數2. ~~使用vis.updateTrace方法~~3. 完整訓練監控示例 Visdom可視化操作散點圖plot.scatter()散點圖案例線性圖vis.line()vis.lin…

Java使用Collections集合工具類

1、Collections 集合工具類 Java 中的 Collections 是一個非常有用的工具類&#xff0c;它提供了許多靜態方法來操作或返回集合。這個類位于 java.util 包中&#xff0c;主要包含對集合進行操作的方法&#xff0c;比如排序、搜索、線程安全化等。 Java集合工具類的使用&#x…

Unity基礎學習(五)Mono中的重要內容(1)延時函數

目錄 一、Mono中的延時函數Invoke 1. Invoke作用&#xff1a;延遲指定時間后執行一次函數。API&#xff1a; 2. InvokeRepeating作用&#xff1a;延遲后開始重復執行函數。API&#xff1a; 3. CancelInvoke作用&#xff1a;停止所有延時函數&#xff0c;或停止指定函數的延時…

180KHz 60V 5A開關電流升壓/升降壓型DC-DC轉換器XL4019升降壓芯片

介紹 XL6019是一款專為升壓、升降壓設計的 單片集成電路&#xff08;升壓和降壓是由外圍電路拓撲確定的&#xff09;&#xff0c;可工作在DC5V到40V輸入電 壓范圍&#xff0c;低紋波&#xff0c;內置功率MOS。XL6019內 置固定頻率振蕩器與頻率補償電路&#xff0c;簡化了電 路…

如何暢通需求收集渠道,獲取用戶反饋?

要暢通需求收集渠道、有效獲取用戶反饋&#xff0c;核心在于多樣化反饋入口、閉環反饋機制、用戶分層管理、反饋數據結構化分析等四個方面。其中&#xff0c;多樣化反饋入口至關重要&#xff0c;不同用戶有不同的溝通偏好&#xff0c;只有覆蓋多個反饋路徑&#xff0c;才能捕捉…

Python結合ollama和stramlit開發聊天機器人

Python結合ollama和stramlit開發聊天機器人 一、環境準備1、streamlit安裝2、langchain安裝3、ollama的安裝 二、Ollama平臺聊天機器人實現1、需求2、模型調用3、前端實現頁面呈現代碼實現 三、詳細代碼地址四、參考資源 一、環境準備 1、streamlit安裝 # 通過 pip 安裝 pip …

java jdbc執行Oracle sql文件

執行代碼 import java.io.FileInputStream; import java.io.InputStreamReader; import java.nio.charset.StandardCharsets; import java.sql.Connection; import java.sql.DriverManager;import org.apache.ibatis.jdbc.ScriptRunner;public class ExecSqlFileController {pu…

[Java實戰]Spring Boot整合MinIO:分布式文件存儲與管理實戰(三十)

[Java實戰]Spring Boot整合MinIO&#xff1a;分布式文件存儲與管理實戰&#xff08;三十&#xff09; 一、MinIO簡介與核心原理 MinIO 是一款高性能、開源的分布式對象存儲系統&#xff0c;兼容 Amazon S3 API&#xff0c;適用于存儲圖片、視頻、日志等非結構化數據。其核心特…