1. 程式人生 > 其它 >ElasticSearch索引與文件操作

ElasticSearch索引與文件操作

1._cat
| _cat介面          | 說明             |
| ----------------- | ---------------- |
| GET /_cat/nodes   | 檢視所有節點     |
| GET /_cat/health  | 檢視ES健康狀況   | 如果是yellow  或者 gray 是由問題的   後面是叢集資訊  
| GET /_cat/master  | 檢視主節點       |uuid?      最後是容器編號?
| GET /_cat/indices | 檢視所有索引資訊 |
/_cat/indices?v 檢視所有的索引資訊


索引操作
索引就相當於我們關係型資料庫Mysql中的database
建立索引  索引名自己確定

PUT /索引名
引數可選:指定分片及副本,預設分片為3,副本為2。
json
{
    "settings": {
        "number_of_shards": 3,
        "number_of_replicas": 2
      }
}

這是不帶json 資料提交

這是帶json資料提交  叢集配置


es 中會預設提供上面的幾個索引,表頭的含義為:


| 欄位名         | 含義說明                                                     |
| -------------- | ------------------------------------------------------------ |
| health         | green(叢集完整) yellow(單點正常、叢集不完整) red(單點不正常) |
| status         | 是否能使用                                                   |
| index          | 索引名                                                       |
| uuid           | 索引統一編號                                                 |
| pri            | 主節點幾個                                                   |
| rep            | 從節點幾個                                                   |
| docs.count     | 文件數                                                       |
| docs.deleted   | 文件被刪了多少                                               |
| store.size     | 整體佔空間大小                                               |
| pri.store.size | 主節點佔                                                     |


檢視索引資訊
 GET /索引名

 檢視所有索引詳細資訊

http://192.168.1.137:9200/*

-----------------------

刪除索引
DELETE /索引名稱

 ------------------

文件操作
建立文件
PUT /索引名稱/型別名/編號
資料

```json
{
   "name":"lcc"
}

_index等是響應的元資料資訊

如果再次提交  此時的狀態是更新狀態
version 會自增+1
且每次提交需要id 如果不寫帶回報錯
| 提交方式 | 描述                                                              |
| -------- | ----------------------------------------------------------------- |
| PUT      | 提交的id如果不存在就是新增操作,如果存在就是更新操作,id不能為空  |
| POST     | 如果不提供id會自動生成一個id,如果id存在就更新,如果id不存在就新增 |
 
POST /索引名稱/型別名/編號  

-------------------------------------------------------

查詢文件

GET /索引/型別/id 

查詢文件資訊

| 欄位          | 含義                                         |
| ------------- | -------------------------------------------- |
| _index        | 索引名稱                                     |
| _type         | 型別名稱                                     |
| _id           | 記錄id                                       |
| _version      | 版本號                                       |
| _seq_no       | 併發控制欄位,每次更新都會+1,用來實現樂觀鎖 |
| _primary_term | 同上,主分片重新分配,如重啟,就會發生變化   |
| found         | 找到結果                                     |
| _source       | 真正的資料內容                               |
樂觀鎖提交方式   ?if_seq_no=0&if_primary_term=1    vesion會自增  result 狀態變為update狀態   seq_no 會自增  如果同時提交的seq_no相同 會使用樂觀鎖的方式 防止併發訪問產生衝突問題

-----------------------------------------

 更新文件

前面的POST和PUT新增資料的時候,如果id存在就會執行更新文件的操作,當然我們也可以通過POST方式提交,然後顯示的跟上_update來實現更新
POST /索引/型別/id/_update
{
   "doc":{
       "name":"lcc111"
   }
}

----------------------------------------------------------

 刪除文件

DELETE /索引/型別/id

DELETE /索引

此時查詢 狀態為false

刪除索引

 此時查詢索引