02-DSL操作Elasticsearch入門

来源:https://www.cnblogs.com/OnlyOnYourself-lzw/archive/2022/07/22/16504246.html
-Advertisement-
Play Games

六、DSL操作ES 6.1、RESTful風格介紹 REST(Representational State Transfer 表述性狀態轉移),是一組架構約束條件和原則,滿足這些約束條件和原則的應用程式或設計就是RESTful。就是一種定義介面的規範。有以下特征: 基於HTTP 可以使用XML格式定 ...


六、DSL操作ES

6.1、RESTful風格介紹

  • REST(Representational State Transfer 表述性狀態轉移),是一組架構約束條件和原則,滿足這些約束條件和原則的應用程式或設計就是RESTful。就是一種定義介面的規範。有以下特征:
    • 基於HTTP
    • 可以使用XML格式定義或JSON格式定義參數和返回值。
    • 每一個URI代表1種資源。
    • 客戶端使用GET、POST、PUT、DELETE 4個表示操作方式的動詞對服務端資源進行操作
      • GET:用來獲取資源
      • POST:用來新建資源(也可以用於更新資源)
      • PUT:用來新建資源
      • DELETE:用來刪除資源
  • 假設現在有有一個/user資源
    • get: /user/1 :查詢
    • delete: /user/1 :刪除
    • post: /user :添加、修改
    • put: /user :添加、修改

6.2、DSL操作ES-操作索引庫

相當於MySQL的資料庫

6.2.1、添加索引

  • 命令
    • PUT goods_index
  • 如下所示

6.2.2、查詢索引

  • 命令
    • GET goods_index
  • 如下所示

6.2.3、刪除索引

  • 命令
    • delete goods_index
  • 如下所示

6.2.4、關閉索引

PS:當索引處於關閉狀態,是不能添加文檔的

  • 命令
    • POST goods_index/_close
  • 如下所示

6.2.5、打開索引

  • 命令
    • POST goods_index/_open
  • 如下所示

6.3、DSL操作ES-操作映射

6.3.1、數據類型

瞭解ES中欄位有那些數據類型

  • ES中包含兩類數據類型:簡單數據類型和複雜數據類型

1)簡單數據類型

  • 字元串

    • 類型 說明
      text 可以分詞,不支持聚合(統計)
      keyword 不會分詞,將全部內容作為一個詞條,支持聚合(統計)
    • 例如:有個文檔(相當於表中的一條數據,其中一個欄位的值是華為手機

      • text:華為、手機
      • keyword:華為手機
  • 數值(不一定分詞)

    • 類型 說明
      long 帶符號的64位數其最小值為-263263,最大值為263263
      integer 帶符號的32為整數,其最小值為-231231,最大值為231231
      short 帶符號的16位整數,其最小值為-32,768,最大值為32,767
      byte 帶符號的8位整數,其最小值位-128,最大值為127
      double 雙精度64位IEEE 754浮點數,限製為有限制
      float 單精度32位IEEE 754浮點數,限製為有限制
      half_float 半精度IEEE 754浮點數,限製為有限制
      scale_float 由a支持的有限浮點數long,由固定double比例因數縮放
    • 布爾類型

      • boolean
    • 二進位

      • binary
    • 日期

      • date
    • 範圍類型

      • integer_range
      • float_range
      • long_range
      • double_range
      • date_range

2)複雜數據類型

  • 數組
    • 沒有專用的array數據類型,任何一個欄位的值,都可以被添加0個到多個,但是要求它們的類型必須一直,當類型一致,含有多個值存儲到ES中會自動轉化成數組類型
  • 對象
    • 如下所示

3)GEO數據類型

  • 地理位置坐標值
    • geo_point

6.3.2、操作映射

添加映射

  • 命令

    • # 創建帶映射(表結構)的索引庫
      PUT person
      {
        "mappings": {
          "properties": {
            "name":{
              "type": "text"
            },
            "age":{
              "type": "integer"
            }
          }
        }
        
      }
      
  • 如下所示

查詢映射

  • 命令

    • GET person/_mapping
      
  • 如下所示

添加欄位

  • 命令

    • PUT person/_mapping
      {
        "properties":{
          "sex":{
            "type":"keyword"
          }
        }
      }
      
  • 如下所示

  • 再次查詢映射

  • PS:ES不能單獨修改映射欄位名稱或類型,也不能單獨刪除某個欄位,如果需要修改,直接刪除整個索引庫再重建

6.4、DSL操作ES-操作文檔

6.4.1、添加文檔

  • 命令

    • # 指定id
      POST person/_doc/1
      {
        "name":"張三",
        "age":18,
        "sex":"男"
      }
      
      # 不指定id
      POST person/_doc
      {
        "name":"翠花",
        "age":20,
        "sex":"女"
      }
      
  • 如下所示

    • 指定id
    • 不指定id

6.4.2、查詢文檔

  • 命令

    • GET person/_doc/1    # 查詢一個
      
      GET person/_search   # 查詢全部
      
  • 如下所示

    • 查詢一個
    • 查詢所有

6.4.3、修改文檔

  • 命令

    • PUT person/_doc/1
      {
        "name":"如花",
        "age":20,
        "sex":"女"
      }
      
  • 如下所示

  • 記得之前說過的

    • ES不能單獨修改映射欄位名稱或類型,也不能單獨刪除某個欄位,如果需要修改,直接刪除整個索引庫再重建

6.4.4、刪除文檔

  • 命令

    • DELETE person/_doc/1
      
  • 如下所示


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • VisualSVN是Visual Studio的專業Subversion集成插件,集成了Subversion和Apache簡化了手工配置Subversion的繁瑣步驟。 ...
  • 一、簡介 Docker Hub作為Docker預設官方公共鏡像,如果想要自己搭建私有鏡像,Harbor是企業級鏡像庫非常好的選擇。 所謂私有倉庫,也就是在本地(區域網)搭建的一個類似公共倉庫的東西,搭建好之後,我們可以將將鏡像提交到私有倉庫中。這樣我們既能使用Docker來運行我們的項目鏡像, 也避 ...
  • 在.Net Framework環境下,我們使用Windows Workflow Foundation(WF)作為項目的工作流引擎,可是.Net Core已經不支持WF了,需要為基於.Net Core的項目選擇新的工作流引擎。基本要求如下: 輕量級,部署和使用都很簡單。 有相當數量的用戶,往往使用的人 ...
  • Linux中的進程 進程:已經啟動的可執行程式的運行實例 1、PID:進程的ID(每一個新進程都有一個唯一的PID) 2、PPID:父進程的ID 3、任何一個進程都可以創建一個子進程 4、在redhat 7以上,所有進程的父進程: systemd 在redhat 5,6中,所有進程的父進程: ini ...
  • 第一步:Linux中啟用串口設備。【以樹莓派4B為例】 樹莓派4B有6個串口,參考上一篇《樹莓派4B串口配置與開發》,在 /boot/config.txt 中添加一行,開啟 uart2 功能: dtoverlay=uart2 重啟後,查看是否有多出來一個 /dev/AMA1 設備: $ ls -l ...
  • 鏡像下載、功能變數名稱解析、時間同步請點擊 阿裡雲開源鏡像站 請註意k8s在1.24版本不支持docker容器,本文使用kubeadm進行搭建 1.查看系統版本信息以及修改配置信息 1.1 安裝k8s時,臨時關閉swap ,如果不關閉在執行kubeadm部分命令會報錯 swapoff -a 或直接註釋swa ...
  • Totally Accurate Battle Simulator for Mac是由游戲廠商Landfall所發行的一款休閑策略游戲,全面戰爭模擬器Mac版是一款非常具有魔性及挑戰性的游戲,游戲人物角色非常“沙雕”,感興趣的朋友快來看一看吧~ 詳情:全面戰爭模擬器 for Mac(休閑策略類游戲) ...
  • 背景 在生產過程中,由於磁碟空間、保留周期等因素,會對系統、應用等日誌提出要求,要求系統日誌定期進行輪轉、壓縮和刪除,從而減少開銷,而系統自帶的logrotate 則是一個簡單又實用的小工具,下麵著重介紹一下,滿足日常需求。 語法 Usage: logrotate [OPTION...] <conf ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...