路徑及方式 | value |
---|---|
GET / _cat / health?v | 健康檢查 |
GET / _cat / nodes?v | 獲取節點列表 |
GET / _cat / indices?v | 獲取索引列表 |
PUT /customer?pretty | 建立名爲 customer的索引 |
爲文檔添加內容使用postman時注意body,json格式html
PUT /customer/_doc/1?pretty { "name": "John Doe"}
路徑及方式 | value |
---|---|
GET /customer/_doc/1?pretty | 查詢索引名稱爲customer的_doc文檔內容 |
DELETE /customer?pretty | 刪除索引 |
POST /customer/_doc/1/_update?pretty | 更新文檔 |
DELETE /customer/_doc/2?pretty | 刪除文檔 |
此示例顯示如何經過將名稱字段更改成「Jane Doe」來更新咱們之前的文檔(ID爲1),同時向其添加年齡字段:node
POST / customer / _doc / 1 / _update?pretty { 「doc」:{「name」:「Jane Doe」,「age」:20} }
也可使用簡單腳本執行更新。此示例使用腳本將年齡增長5:web
POST / customer / _doc / 1 / _update?pretty { 「script」:「ctx._source.age + = 5」 }
在上面的示例中,ctx._source指的是即將更新的當前源文檔。json
Elasticsearch提供了在給定查詢條件(如SQL UPDATE-WHERE語句)的狀況下更新多個文檔的功能。請參閱docs-update-by-query api
批處理:
在一個批量操做中索引兩個文檔(ID1-john doe和id2-jane doe):api
POST /customer/_doc/_bulk?pretty {"index":{"_id":"1"}} {"name": "John Doe" } {"index":{"_id":"2"}} {"name": "Jane Doe" }
此示例更新第一個文檔(ID爲1),而後在一個批量操做中刪除第二個文檔(ID爲2):數組
POST /customer/_doc/_bulk?pretty {"update":{"_id":"1"}} {"doc": { "name": "John Doe becomes Jane Doe" } } {"delete":{"_id":"2"}}
注:刪除只須要刪除id便可
加載模板數據app
curl -H "Content-Type: application/json" -XPOST "localhost:9200/bank/_doc/_bulk?pretty&refresh" --data-binary "@accounts.json" curl "localhost:9200/_cat/indices?v"
search api:
在bank索引中搜索,q=*參數指示Elasticsearch匹配索引中的全部文檔,sort=account_number:asc參數表示使用account_number每一個文檔的字段以升序對結果進行排序,pretty表示返回json結果curl
GET / bank / _search?q = *&sort = account_number:asc&pretty
與上面徹底相同的結果elasticsearch
GET /bank/_search { "query": { "match_all": {} }, "sort": [ { "account_number": "asc" } ] }
結果值 | 意義 |
---|---|
took | Elasticsearch執行搜索的時間(以毫秒爲單位) |
timed_out | 搜索是否超時 |
_shards | 告訴咱們搜索了多少個分片,以及搜索成功/失敗分片的計數 |
hits | 搜索結果 |
hits.total | 符合咱們搜索條件的文檔總數 |
hits.hits | 實際的搜索結果數組(默認爲前10個文檔) |
hits.sort | 對結果進行排序鍵(若是按分數排序則丟失) |
hits._score和max_score | 暫時忽略這些字段 |
查詢語句ide
GET /bank/_search { "query": { "match_all": {} }, "from": 10, "size": 1 "sort":{「balance」:{「order」:「desc」}} "_source":{"account_number","balance"} }
query爲查詢定義 ,match_all(查詢類型)在指定索引的全部文件搜索,size默認爲10(文件數量),from起始位置(默認爲0),sort對balance(非系統字段,此字段根據本身實際狀況自行使用)進行降序排序(默認大小10個文檔),_source是簡化了的_source字段。它將只返回一個包含account_number和balance在內_sourced字段
返回編號爲20的帳號:
GET / bank / _search { 「query」:{「match」:{「account_number」:20}} }
返回地址中包含「mill」的全部帳號:
GET / bank / _search { 「query」:{「match」:{「address」:「mill」}} }
返回地址中包含「mill」或「lane」的全部帳號:
GET / bank / _search { 「query」:{「match」:{「address」:「mill lane」}} }
bool使用布爾邏輯將較小的查詢組成兩個match並返回「mill」和「lane」的全部帳號:
bool must子句指定必須爲true才能將文檔視爲匹配的全部查詢,must_not則是取不包含兩個關鍵字的帳號
GET / bank / _search { 「query」:{ 「bool」:{ 「must」:[ {「match」:{「address」:「mill」}}, {「match」:{「address」:「lane」 }} ] } } }