一 前言
【資料庫系列】上篇我們講到如何Elasticsearch是什麼以及如何搭建,那麼本篇我們來講講Elasticsearch的基本操作。
我在剛開始工作時,公司就是用的Elasticsearch做數倉,當時在學校隻學過Mysql,對于Elasticsearch完全沒有一點概念,造數全靠開發寫好的腳本,總之當時對這一塊就很懵逼。
然後在後面對MySql逐漸熟練之後,再重新學習Elasticsearch,将學習MySql的經驗套用過來,才發現可以這麼好的了解
Elasticsearch -> Indeces(索引) -> Types(類型) -> Documents(文檔) -> Fields(屬性)
關系型資料庫 -> Databases(庫) -> Tables(表) -> Rows(行) -> Columns(列)
複制
二 索引操作
1、API檢測叢集是否健康
方法:get
請求:http://127.0.0.1:9200/_cat/health?v
響應:
2、擷取叢集的節點清單
方法:get
請求:http://127.0.0.1:9200/_cat/nodes?v
響應:
3、建立索引
方法:put
請求:http://127.0.0.1:9200/person
注意:預設情況下,建立的索引分片數量是 5 個,副本數量是 1 個。可以通過如下方式修改預設值:number_of_shards 分片 number_of_replicas 備份
{ "settings": { "number_of_shards": 6, "number_of_replicas": 2 }}
複制
響應:
4、檢視所有索引
方法:get
請求:http://127.0.0.1:9200/_cat/indices?v
響應:
說明:這裡請求路徑中的_cat 表示檢視的意思,indices 表示索引,是以整體含義就是檢視目前伺服器中的所有索引。
響應字段 | 說明 |
---|---|
health | green(叢集完整) yellow(單點正常、叢集不完整) red(單點不正常) |
status | 是否能使用 |
index | 索引名 |
uuid | 索引統一編号 |
pri | 主節點幾個 |
rep | 從節點幾個 |
docs.count | 文檔數 |
docs.deleted | 文檔被删了多少 |
store.size | 整體占空間大小 |
pri.store.size | 主節點占空間 |
5、檢視單個索引
方法:get
請求:http://127.0.0.1:9200/person
響應:
6、删除索引
方法:delete
請求:http://127.0.0.1:9200/person
響應:
三 文檔操作
文檔:即索引庫中某個類型下的資料,類比做資料庫中的每一行資料。
1、建立文檔
方法:post
請求:http://127.0.0.1:9200/person/_doc/1
{ "name":"張藝興", "age":30}
複制
響應:
說明:此處發送請求的方式必須為 post,不能是 put,否則會發生錯誤。這裡是因為put是一個幂等的請求,post生成的id是随機的。使用JMeter建立文檔時注意設定編碼:utf-8,否則中文會變成???
2、檢視單個文檔
方法:get
請求:http://127.0.0.1:9200/person/_doc/1
響應:
說明:檢視文檔時,需要指明文檔的唯一性辨別,類似于 MySQL 中資料的主鍵查詢。
3、檢視多個文檔
方法:get
請求:http://127.0.0.1:9200/mapping/_search
響應:
4、修改文檔
方法:post
請求:http://127.0.0.1:9200/person/_doc/1
{ "name":"張藝興超級帥!", "age":300}
複制
響應:
5、删除文檔
方法:delete
請求:http://127.0.0.1:9200/person/_doc/1
響應:
四 總結
我發現學新技術沒以前這麼坎坷了,可以很快的上手悟出來,這個因為在學習其它技術過程中提升了自己的總結能力,形成了一個正向循環的過程,這種感覺太棒了!
下篇我們來講講如何用Java來操作Elasticsearch~