elk 之elasticsearch 部分參數參考(1)

elk 之elasticsearch部分參數參考

路徑及方式 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」 }} 
          ] 
        } 
      } 
    }
相關文章
相關標籤/搜索