1. 程式人生 > >Elasticsearch中常用的API

Elasticsearch中常用的API

elasticsearch中常用的API分類如下:

文件API: 提供對文件的增刪改查操作

搜尋API: 提供對文件進行某個欄位的查詢

索引API: 提供對索引進行操作,檢視索引資訊等

檢視API: 按照更直觀的形式返回資料,更適用於控制檯請求展示

叢集API: 對叢集進行檢視和操作的API

下面簡單的一一介紹記錄一下。

文件類API

Index API: 建立並建立索引

PUT twitter/tweet/1{ "user" : "kimchy", "post_date" : "2009-11-15T14:12:12", "message" : "trying out Elasticsearch"
}

Get API: 獲取文件

 curl -XGET 'http://localhost:9200/twitter/tweet/1'

DELETE API: 刪除文件

$ curl -XDELETE 'http://localhost:9200/twitter/tweet/1'

UPDATE API: 更新文件

  PUT test/type1/1{ "counter" : 1, "tags" : ["red"]}

Multi Get API: 一次批量獲取文件

  curl 'localhost:9200/_mget' -d '{ "docs" : [{ "_index" : "test", "
_type" : "type", "_id" : "1" }, { "_index" : "test", "_type" : "type", "_id" : "2" } ]}'

Bulk API: 批量操作,批量操作中可以執行增刪改查

  $ curl -s -XPOST localhost:9200/_bulk --data-binary "@requests"; echo{"took":7, "errors": false, "items": [{"index":{"_index":"test","_type":"type1","_id":"1","_version":1,"result"
:"created","forced_refresh":false}}]}

DELETE By Query API: 根據查詢刪除

 POST twitter/_delete_by_query{ "query": { "match": { "message": "some message" } }}

Update By Query API: 根據查詢更新

POST twitter/_update_by_query?conflicts=proceed

Reindex API:重建索引

 POST _reindex{ "source": { "index": "twitter" }, "dest": { "index": "new_twitter" }}

Term Vectors: 片語分析,只能針對一個文件

curl -XGET 'http://localhost:9200/twitter/tweet/1/_termvectors?pretty=true'

Multi termvectors API: 多個文件的片語分析

  curl 'localhost:9200/_mtermvectors' -d '{ "docs": [{ "_index": "testidx", "_type": "test", "_id": "2", "term_statistics": true }, { "_index": "testidx", "_type": "test", "_id": "1", "fields": ["text" ] } ]}'

搜尋類API 

URI Search:url中傳參

GET twitter/tweet/_search?q=user:kimchy

Request Body搜尋介面: 搜尋的條件在請求的body中

GET /twitter/tweet/_search{ "query" : { "term" : { "user" : "kimchy" } }}
搜尋模版設定介面: 可以設定搜尋的模版,模版的功能是可以根據不同的傳入引數,進行不同的實際搜尋

搜尋分片查詢介面: 查詢這個搜尋會使用到哪個索引和分片

Suggest介面: 搜尋建議介面,輸入一個詞,根據某個欄位,返回搜尋建議。

批量搜尋介面: 把批量請求放在一個檔案中,批量搜尋介面讀取這個檔案,進行搜尋查詢

Count介面: 只返回符合搜尋的文件個數

文件存在介面: 判斷是否有符合搜尋的文件存在

驗證介面: 判斷某個搜尋請求是否合法,不合法返回錯誤資訊

解釋介面: 使用這個介面能返回某個文件是否符合某個查詢,為什麼符合等資訊

抽出器介面: 簡單來說,可以用這個介面指定某個文件符合某個搜尋,事先未文件建立對應搜尋

索引類API

建立索引介面(POST my_index)

刪除索引介面(DELETE my_index)

獲取索引資訊介面(GET my_index)

索引是否存在介面(HEAD my_index)

開啟/關閉索引介面(my_index/_close, my_index/_open)

設定索引對映介面(PUT my_index/_mapping)

獲取索引對映介面(GET my_index/_mapping)

獲取欄位對映介面(GET my_index/_mapping/field/my_field)

型別是否存在介面(HEAD my_index/my_type)

刪除對映介面(DELTE my_index/_mapping/my_type)

索引別名介面(_aliases)

更新索引設定介面(PUT my_index/_settings)

獲取索引設定介面(GET my_index/_settings)

分析介面(_analyze): 分析某個欄位是如何建立索引的

建立索引模版介面(_template): 為索引建立模版,以後新建立的索引都可以按照這個模版進行初始化

預熱介面(_warmer): 某些查詢可以事先預熱,這樣預熱後的資料存放在記憶體中,增加後續查詢效率

狀態介面(_status): 索引狀態

批量索引狀態介面(_stats): 批量查詢索引狀態

分片資訊介面(_segments): 提供分片資訊級別的資訊

索引恢復介面(_recovery): 進行索引恢復操作

清除快取介面(_cache/clear): 清除所有的快取

輸出介面(_flush)

重新整理介面(_refresh)

優化介面(_optimize): 對索引進行優化

升級介面(_upgrade): 這裡的升級指的是把索引升級到lucence的最新格式

檢視類API

檢視別名介面(_cat/aliases): 檢視索引別名

檢視分配資源介面(_cat/allocation)

檢視文件個數介面(_cat/count)

檢視欄位分配情況介面(_cat/fielddata)

檢視健康狀態介面(_cat/health)

檢視索引資訊介面(_cat/indices)

檢視master資訊介面(_cat/master)

檢視nodes資訊介面(_cat/nodes)

檢視正在掛起的任務介面(_cat/pending_tasks)

檢視外掛介面(_cat/plugins)

檢視修復狀態介面(_cat/recovery)

檢視線城池介面(_cat/thread_pool)

檢視分片資訊介面(_cat/shards)

檢視lucence的段資訊介面(_cat/segments)

叢集類API

檢視叢集健康狀態介面(_cluster/health)

檢視叢集狀況介面(_cluster/state)

檢視叢集統計資訊介面(_cluster/stats)

檢視叢集掛起的任務介面(_cluster/pending_tasks)

叢集重新路由操作(_cluster/reroute)

更新叢集設定(_cluster/settings)

節點狀態(_nodes/stats)

節點資訊(_nodes)

節點的熱執行緒(_nodes/hot_threads)

關閉節點(/nodes/_master/_shutdown)