六、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:添加、修改
- get:
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_rangefloat_rangelong_rangedouble_rangedate_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
- 指定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
-
-
如下所示
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/500027.html
標籤:其它















