###一、前言
ElasticSearch 提供了一套非常強大並且易操作的 REST API 用於我們開發人員進行操作。主要 REST API 能完成以下幾項功能:
-
管理功能
-
i:檢查集羣、節點、索引的狀態以及相關的統計數據
-
ii:管理集羣、節點、索引數據以及源數據
-
-
維護索引
-
i:基本操作。
提供針對索引的CRUD操作(Create【PUT】, Read【GET】, Update【POST】, and Delete【POST】) -
ii:高級操作
以及其他如分頁、排序、過濾等高級操作
###二、集羣管理
####1.查看集羣狀態
GET /_cat/health?v
返回值
從以上的返回值中,我們可以得到一個名爲ElasticSearch的集羣,共有一個節點,沒有索引數據。
ps:Epoch :時間戳 long 類型的
####2.查看所有節點狀態
GET /_cat/nodes?v
###三、常見 CRUD 操作
####1.新建索引
PUT /hiup?pretty
返回值
{
"acknowledged": true,
"shards_acknowledged": true
}
pretty參數:用來格式化返回值。類似於mysql\G 來格式化輸出一樣的作用。需要注意的是這個需要的操作是PUT 操作。
####2.查看所有索引
GET /_cat/indices?v
這時候再使用這個命令,我們就能查看到所有索引數據。
從以上的返回值中,我們可以看見已經創建一個名爲 hiup 尚未分配的索引。
####3.創建文檔
curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"fu"}'
從以上的返回值,我們可以得到成功創建了一個hiup索引,類型爲user,id爲 2 。
需要聲明的是,當你創建一個文檔時,無需再這之前創建一個索引和類型,ElasticSearch會自動根據你的創建信息自動創建相應的索引、類型,直至文檔。
####4.查看文檔
curl -XGET 'localhost:9200/hiup/user/1?pretty'
####5.刪除文檔
curl -XDELETE 'localhost:9200/hiup/user/1?pretty'
從返回值,我們可以發現通過操作我們已經刪除了hiup索引中類型爲user,id爲1的文檔。
####6.修改文檔
1.curl -XPUT 'localhost:9200/hiup/user/2?pretty' -d '{"name":"xiaoming"}'
從返回結構來看,我們可以發現修改了一個huip索引類型爲user的文檔。
2.curl -XPOST 'localhost:9200/hiup/user/2/_update?pretty&pretty' -d'
{
"doc": { "name": "xiaohong" }
}'
從返回結果來說,這兩個操作時一樣的。有所不同的是,上一個操作爲替換操作,這個爲更新操作。
####7.批量新增文檔
curl -XPOST 'localhost:9200/hiup/user/_bulk?pretty&pretty' -d
'{"index":{"_id":"1"}}
{"name": "zhaowu" }
{"index":{"_id":"2"}}
{"name": "wangwu" }'
####8.分頁查詢
curl -XGET 'localhost:9200/hiup/user/_search?pretty' -d'
{
"query": { "match_all": {} },
"from": 1,
"size": 1
}'
- query:匹配所有
- from:開始讀取索引,從第十條開始讀取
- size:讀取條數,相當於pagesize
###9.過濾查詢
$ curl -XGET 'localhost:9200/hiup/_search?pretty' -d'
{
"query": {
"bool": {
"must": { "match_all": {} },
"filter": {
"range": {
"age": {
"gte": 0,
"lte": 1
}
}
}
}
}
}'
查詢hiup索引過濾age 大於等於0 小於等於1
###四、總結
ElasticSearch 是一個很強大 並且很友好的全文檢索框架,本文僅僅介紹了針對集羣的非常簡單的 Restful 形式的 API 操作。這個僅僅是我們學習ElasticSearch的基礎,相信本文過後也會激發我們繼續深入ElasticSearch的腳步。