Elasticsearch(5) --- 基本命令(集羣相關命令、索引CRUD命令、文檔CRUD命令)

#<center> Elasticsearch(5)--- 基本命令</center>html

說明:該博客對於的Elasticsearch 的版本爲7.3。node

這篇博客的命令分爲ES集羣相關命令索引CRUD命令文檔CRUD命令。這裏不包括Query查詢命令,它單獨寫一篇博客。mysql

<font color=#FFD700> 1、ES集羣相關命令</font>

ES集羣相關命令主要是_cat命令,因此這裏詳細講解下該命令。sql

一、_cat命令

_cat系列提供了一系列查詢Elasticsearch集羣狀態的接口。json

/_cat/allocation      #查看單節點的shard分配總體狀況
/_cat/shards          #查看各shard的詳細狀況
/_cat/shards/{index}  #查看指定分片的詳細狀況
/_cat/master          #查看master節點信息
/_cat/nodes           #查看全部節點信息
/_cat/indices         #查看集羣中全部index的詳細信息
/_cat/indices/{index} #查看集羣中指定index的詳細信息
/_cat/segments        #查看各index的segment詳細信息,包括segment名, 所屬shard, 內存(磁盤)佔用大小, 是否刷盤
/_cat/segments/{index}#查看指定index的segment詳細信息
/_cat/count           #查看當前集羣的doc數量
/_cat/count/{index}   #查看指定索引的doc數量
/_cat/recovery        #查看集羣內每一個shard的recovery過程.調整replica。
/_cat/recovery/{index}#查看指定索引shard的recovery過程
/_cat/health          #查看集羣當前狀態:紅、黃、綠
/_cat/pending_tasks   #查看當前集羣的pending task
/_cat/aliases         #查看集羣中全部alias信息,路由配置等
/_cat/aliases/{alias} #查看指定索引的alias信息
/_cat/thread_pool     #查看集羣各節點內部不一樣類型的threadpool的統計信息,
/_cat/plugins         #查看集羣各個節點上的plugin信息
/_cat/fielddata       #查看當前集羣各個節點的fielddata內存使用狀況
/_cat/fielddata/{fields}     #查看指定field的內存使用狀況,裏面傳field屬性對應的值
/_cat/nodeattrs              #查看單節點的自定義屬性
/_cat/repositories           #輸出集羣中註冊快照存儲庫
/_cat/templates              #輸出當前正在存在的模板信息

每一個命令都支持使用?v參數,讓輸出內容表格顯示錶頭; pretty則讓輸出縮進更規範bash

二、示例

1) 節點信息app

curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip         heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.18.0.4           52          97   6    0.02    0.11     0.28 mdi       -      es7_02
172.18.0.5           57          97   6    0.02    0.11     0.28 mdi       *      es7_01
  1. heap.percent 堆內存佔用百分比
  2. ram.percent 內存佔用百分比
  3. cpu CPU佔用百分比
  4. master *表示節點是集羣中的主節點
  5. name 節點名

2) 分片信息curl

curl -X GET "localhost:9200/_cat/shards?v&pretty"
index                           shard prirep state    docs   store ip         node
.monitoring-es-7-2019.08.30     0     p      STARTED 21333  11.8mb 172.18.0.5 es7_01
.monitoring-es-7-2019.08.30     0     r      STARTED 21333  11.8mb 172.18.0.4 es7_02
goods-index                     0     p      STARTED     1   2.5mb 172.18.0.5 es7_01
goods-index                     0     r      STARTED     1   2.5mb 172.18.0.4 es7_02
.kibana_1                       0     p      STARTED     4  22.4kb 172.18.0.5 es7_01
.kibana_1                       0     r      STARTED     4  22.4kb 172.18.0.4 es7_02
  1. index 索引名稱
  2. shard 分片序號
  3. prirep p表示該分片是主分片, r 表示該分片是複製分片
  4. store 該分片佔用存儲空間
  5. node 所屬節點節點名
  6. docs 分片存放的文檔

3) 索引信息ui

curl -X GET "localhost:9200/_cat/indices?v"
health status index                           uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   goods-index                     NhqSRJWUQiu46tdOKol4wA   1   1          1         7018        5mb          2.5mb
green  open   .monitoring-es-7-2019.08.30     lVDNFDVdSXqqrn8CdI_XGg   1   1      21333        18920     23.6mb         11.8mb
green  open   .kibana_1                       rvSlNVjJTsus80klzU19jQ   1   1          4            1     44.9kb         22.4kb
  1. health 索引的健康狀態
  2. index 索引名
  3. pri 索引主分片數量
  4. rep 索引複製分片
  5. store.size 索引主分片 複製分片 總佔用存儲空間
  6. pri.store.size 索引總佔用空間, 不計算複製分片 佔用空間

<br>url

<font color=#FFD700> 2、索引CRUD命令</font>

一、查詢索引

查詢索引命令上面已經展現過了,這裏再補充一些

條件過濾

_cat/indices?v&health=yellow   #查詢健康狀態爲yellow的索引

排序

_cat/indices?v&health=yellow&s=docs.count:desc #根據文檔數量進行索引排序

索引詳細信息

curl -X GET "localhost:9200/my_index/_stats?pretty" #索引詳細信息

二、建立索引

PUT /student
{
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 1
    },
    "mappings": {
            "properties": {
                "name": {
                    "type":"text"
                },
                "country": {
                    "type":"keyword"
                },
                "age": {
                    "type":"integer"
                },
                "date": {
                    "type": "date",
                    "format": "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
            }
        }
    }
}

建立成功

三、刪除索引

curl -X DELETE "localhost:9200/index-name"

<br>

<font color=#FFD700> 3、文檔CRUD命令</font>

在講文檔的CRUD以前咱們要先理解 GET/PUT/POST/DELETE

POST /uri        #建立
DELETE /uri/xxx  #刪除
PUT /uri/xxx     #更新或建立
GET /uri/xxx     #查看

思考POST和PUT的區別

1)在ES中,若是不肯定文檔的ID,那麼就須要用POST,它能夠本身生成惟一的文檔ID。若是肯定文檔的ID,那麼就能夠用PUT,固然也能夠用POST,它們均可以建立或修改文檔(若是是修改,那麼_version版本號提升1)

2)PUT、GET、DELETE是冪等的,而POST並不必定是冪等。若是你對POST也指定了文檔ID,那它其實和PUT沒啥區別,那它就是冪等。若是你沒有指定文檔ID那麼就不是冪等操做了,由於同一數據,你執行屢次POST,那麼生成多個UUID的文檔,

也就是每POST一次都會新增一條數據。

一、建立文檔

1)PUT方式建立

PUT  /student/_doc/1 
{
    "name": "徐小小",
    "country": "杭州",
    "age": "3",
    "date": "2019-09-04"
}

運行結果

2)POST方式建立

POST不指定主鍵

POST  /student/_doc
{
    "name": "徐小小",
    "country": "杭州",
    "age": "3",
    "date": "2019-09-04"
}

運行結果

POST指定主鍵ID

POST  /student/_doc/88
{
    "name": "徐小小",
    "country": "杭州",
    "age": "3",
    "date": "2019-09-04"
}

運行結果

能夠明顯看出,POST也能夠指定文檔ID,若是指定文檔ID,那麼就和PUT沒有區別。ID不存在則建立,存在則更新而且_version版本+1.

二、文檔查看

GET  /student/_doc/1

如圖

三、文檔更新

商品PUT和POST執行的時候,若是指定的文檔ID存在,那麼就能夠執行更新操做。不過它們執行的是全量更新,若是須要單獨對某字段更新咱們可使用關鍵字_update

例如

POST /student/_update/1
{
   "doc" : {
      "age": 5
   }
}

如圖,發現age已經更新成功

四、文檔刪除

語法

DELETE /{index}/{type}/{id}

<br>

<font color=#FFD700>參考</font>

一、Elasticsearch核心技術與實戰---阮一鳴(eBay Pronto平臺技術負責人

二、ElasticSearch經常使用命令

三、Elasticsearch 狀態查詢Cat接口

四、文檔操做基本命令

五、ElasticSearch批量操做相關命令

<br> <br>

我相信,不管從此的道路多麼坎坷,只要抓住今天,早晚會在奮鬥中嚐到人生的甘甜。抓住人生中的一分一秒,賽過虛度中的一月一年!(9)

<br>

原文出處:https://www.cnblogs.com/qdhxhz/p/11461174.html

相關文章
相關標籤/搜索