一、Elasticsearch 7 入門

安裝(開箱即用)

window 安裝

  1. 下載並解壓:elasticsearch
  • 官方下載:https://www.elastic.co/cn/downloads/elasticsearch
  • 鏈接:https://pan.baidu.com/s/1zIqXPQr4yAhHSHKZF-mQJg
    提取碼:ecbj
  1. 啓動:/bin/elasticsearch.bat
  2. 驗證elasticsearch:http://localhost:9200/?pretty
  3. 下載並解壓:kibana
  • 官方下載:https://www.elastic.co/cn/downloads/kibana
  • 鏈接:https://pan.baidu.com/s/1xSAA_KztGUJwjEBDwoAeWw
    提取碼:195q
  1. 啓動:/bin/kibana.bat
  2. 驗證:http://localhost:5601/
  3. 開發者關注 Kibana -> Dev Tools http://localhost:5601/app/kibana#/dev_tools/console

API

健康狀況

GET _cat/health?v

epoch      timestamp cluster       status node.total node.data shards pri relo init unassign pending_tasks max_task_wait_time active_shards_percent
1585200949 05:35:49  elasticsearch green           1         1      3   3    0    0        0             0                  -                100.0%

主要看 status 信息

  • green - 健康
  • yellow - 分配了所有主分片,但至少缺少一個副本,此時集羣數據仍舊完整
  • red - 部分主分片不可用,可能已經丟失數據

索引狀況

GET _cat/indices?v

health status index                    uuid                   pri rep docs.count docs.deleted store.size pri.store.size
green  open   .kibana_task_manager_1   Uhs2F8GYTxO9CtH8t9JKGA   1   0          2            1     51.4kb         51.4kb
green  open   .apm-agent-configuration KJF2qw89TcqNmbYN2PnxhQ   1   0          0            0       283b           283b
green  open   .kibana_1                5zJcklOxSjaR95FDvPLUxg   1   0          4            0     16.6kb         16.6kb

索引操作

  • PUT /test_index - 創建索引,test_index 爲自定義所以名
  • DELETE /test_index - 刪除索引

簡單CURD操作

新增商品,新增文檔,建立索引

插入數據

  • 語法
PUT /index/type/id
{
    ...
}
  • es 會自動建立 index 和 type ,不需要提前創建,而且 es 默認會對 document 每個 field 都建立倒排索引,讓其可以被搜索
  • 新增商品
PUT /ecommerce/product/1
{ 
    "name": "gaolujie yagao",
    "desc": "gaoxiao meibai",
    "price": 30,
    "producer": "gaolujie producer",
    "tags": ["meibai", "fangzhu"]
}

PUT /ecommerce/product/2
{ 
    "name": "jiajieshi yagao",
    "desc": "youxiao fangzhu",
    "price": 25,
    "producer": "jiajieshi producer",
    "tags": ["fangzhu"]
}

PUT /ecommerce/product/3
{ 
    "name": "zhonghua yagao",
    "desc": "caoben zhiwu",
    "price": 40,
    "producer": "zhonghua producer",
    "tags": ["qingxin", "fangzhu"]
}

查詢

  • 語法
GET /index/type/id
  • 查詢商品
GET /ecommerce/product/1

{
  "_index" : "ecommerce",
  "_type" : "product",
  "_id" : "1",
  "_version" : 1,
  "_seq_no" : 0,
  "_primary_term" : 1,
  "found" : true,
  "_source" : {
    "name" : "gaolujie yagao",
    "desc" : "gaoxiao meibai",
    "price" : 30,
    "producer" : "gaolujie producer",
    "tags" : [
      "meibai",
      "fangzhu"
    ]
  }
}

更新

修改後 document 的 version 會遞增

語法一 - 替換法

PUT /index/type/id
{ 
    "field1" : "field1 new value"
    all field ...
}
  • 修改商品名稱
PUT /ecommerce/product/1
{ 
    "name": "jiaqiangban gaolujie yagao",
    "desc": "gaoxiao meibai",
    "price": 30,
    "producer": "gaolujie producer",
    "tags": ["meibai", "fangzhu"]
}

缺陷:必須帶上素有 field , 才能去進行信息的修改

語法二 - 更新法【推薦】

POST /index/type/id/_update
{
    "doc": {
        "filed": "new field value"
    }
}
  • 修改商品名稱
POST /ecommerce/product/1/_update
{
    "doc": {
        "name": "jiaqiangban gaolujie yagao"
    }
}

注意:修改內容在doc節點下

刪除

  • 語法
DELETE /index/type/id
  • 刪除商品
DELETE /ecommerce/product/1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章