RESTful API HTTP動詞介紹
對於資源的具體操作類型,由HTTP動詞表示。
常用的HTTP動詞有下面五個(括號裏是對應的SQL命令)。
- GET(SELECT):從服務器取出資源(一項或多項)。
- POST(CREATE):在服務器新建一個資源。
- PUT(UPDATE):在服務器更新資源(客戶端提供改變後的完整資源)。
- PATCH(UPDATE):在服務器更新資源(客戶端提供改變的屬性)。
- DELETE(DELETE):從服務器刪除資源。
還有兩個不常用的HTTP動詞。
- HEAD:獲取資源的元數據。
- OPTIONS:獲取信息,關於資源的哪些屬性是客戶端可以改變的。
下面是一些例子。
- GET /zoos:列出所有動物園
- POST /zoos:新建一個動物園
- GET /zoos/ID:獲取某個指定動物園的信息
- PUT /zoos/ID:更新某個指定動物園的信息(提供該動物園的全部信息)
- PATCH /zoos/ID:更新某個指定動物園的信息(提供該動物園的部分信息)
- DELETE /zoos/ID:刪除某個動物園
- GET /zoos/ID/animals:列出某個指定動物園的所有動物
- DELETE /zoos/ID/animals/ID:刪除某個指定動物園的指定動物
ES常用RESTful API介紹
ES爲開發者提供了非常豐富的基於Http協議的Rest API,通過簡單的Rest請求,就可以實現非常強大的功能
- 查詢集羣健康信息
GET /_cat/health?v
#通過下面的請求可以查看返回結果各字段的意義:
GET /_cat/health?help
- 查看集羣中節點信息
GET /_cat/nodes?v
- 查看集羣中索引信息
GET /_cat/indices?v
- 創建索引
PUT /indexname
該指令使用默認的配置創建了一個索引,也可以通過指定相關配置信息來創建索引,參考下面的指令
PUT indexname
{
"settings": {
"index": {
"number_of_replicas": "1", #副本集數量
"number_of_shards": "5", #分片數量
"analysis": {
"analyzer": {
"default": { #定義名字爲default的分詞器
"type": "custom",
"tokenizer": "ik_max_word", #使用ik_max_word分詞
"filter": ["stemmer"]
}
}
}
}
},
"mappings": {
"typename": { #類型名稱
"properties": {
"name": {
"type": "text",
"store": false,
"analyzer": "default", #使用default分詞
"search_analyzer": "default",
"boost": 1 #定義文檔中該字段的重要性,越高越重要
},
"date": {
"type": "date",
"format": "yyyy-MM-dd" #格式化時間格式
},
"age": {
"type": "integer"
},
"innertypename": { #內聯類型名稱
"properties": {
"address": {
"index": false,
"type": "keyword" #keyword不分詞,保存完整的數據到倒排索引中
}
}
}
}
}
}
}
index 有三個索引值:
- analyzed
首先分析字符串,然後索引它。換句話說,以全文索引這個域。- not_analyzed
索引這個域,所以它能夠被搜索,但索引的是精確值。不會對它進行分析- no
不索引這個域。這個域不會被搜索到。
-
創建只有一個主分片,沒有複製分片的小索引
PUT /indexname { "settings": { "number_of_shards" : 1, "number_of_replicas" : 0 } }
-
用 update-index-settings API 動態修改複製分片個數:
PUT /indexname/_settings
{
"number_of_replicas": 1
}
- 刪除索引
DELETE /indexname
#刪除多個索引
DELETE /index_one,index_two
DELETE /index_*
刪除多個索引
DELETE /_all
- 查看索引信息
GET indexname?pretty
- 查看_mapping
GET indexname/_mapping?pretty
- 創建索引Mapping信息
PUT indexname/_mapping
{
"_doc": {
"properties": {
"name": {
"type": "string",
"index": false
},
"age": {
"type": "integer"
}
}
}
}
- 刪除索引Mapping信息
DELETE indexname