增刪改查是資料庫的基礎操作方法。es 雖然不是資料庫,但是很多場合下,都被人們當做乙個文件型 nosql 資料庫在使用,原因自然是因為在介面和分布式架構層面的相似性。雖然在 elastic stack 場景下,資料的寫入和查詢,分別由 logstash 和 kibana 代勞,作為測試、調研和排錯時的基本功,還是需要了解一下 es 的增刪改查用法的。
es 的一大特點,就是全 restful 介面處理 json 請求。所以,資料寫入非常簡單:
# curl -xpost -d ''
命令返回響應結果為:
可以看到,在資料寫入的時候,會返回該資料的_id
。這就是後續用來獲取資料的關鍵:
# curl -xget /au4ew3h2nbe6n0qcyvjk
命令返回響應結果為:
}
這個_source
裡的內容,正是之前寫入的資料。
如果覺得這個返回看起來有點太過麻煩,可以使用curl -xget /au4ew3h2nbe6n0qcyvjk/_source
來指明只獲取源資料部分。
更進一步的,如果你只想看資料中的一部分字段內容,可以使用curl -xget /au4ew3h2nbe6n0qcyvjk?fields=user,mesg
來指明獲取字段,結果如下:
}
要刪除資料,修改傳送的 http 請求方法為 delete 即可:
# curl -xdelete /au4ew3h2nbe6n0qcyvjk
刪除不單針對單條資料,還可以刪除整個整個索引。甚至可以用萬用字元。
# curl -xdelete
在 elasticsearch 2.x 之前,可以通過查詢語句刪除,也可以刪除某個_type
內的資料。現在都已經不再內建支援,改為delete by query
外掛程式。因為這種方式本身對效能影響較大!
已經寫過的資料,同樣還是可以修改的。有兩種辦法,一種是全量提交,即指明_id
再傳送一次寫入請求。
# curl -xpost /au4ew3h2nbe6n0qcyvjk -d ''
另一種是區域性更新,使用/_update
介面:
# curl -xpost '/au4ew3h2nbe6n0qcyvjk/_update' -d '
}'
或者
# curl -xpost '/au4ew3h2nbe6n0qcyvjk/_update' -d ''
ElasticSearch筆記 增刪改
新增單個文件post index1 user 1000 如果不指定id,將隨機生成乙個,id的欄位名是 id 刪除指定id的文件delete blog article2 1按條件刪除post index5 people delete by query?q name zhangsan覆蓋文件 es中文...
Elasticsearch常用增刪改查記錄
最近使用elasticsearch來做異常監控的儲存,寫了不少es的索引操作,以及對資料的增刪改查操作,記錄一下,以備不時之需。列出所有索引 get cat indices 檢視indices get cat indices jz fe v s index 檢視索引的文件總數 刪除索引 檢視索引相關...
Elasticsearch 文件增刪改查及區域性更新
文件,即索引庫中的資料,會根據規則建立索引,將來用於搜尋。可以模擬做資料庫中的一行資料 post 索引名稱 search post 索引名 update 全量 put my company index doc 3 部分更新 post my company index update 3 delete ...