日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

elasticsearch的增删改查

發(fā)布時間:2025/3/21 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 elasticsearch的增删改查 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

????增刪改查是數(shù)據(jù)庫的基礎(chǔ)操作方法。ES 雖然不是數(shù)據(jù)庫,但是很多場合下,都被 人們當做一個文檔型 NoSQL 數(shù)據(jù)庫在使用,原因自然是因為在接口和分布式架構(gòu) 層面的相似性。雖然在 Elastic Stack 場景下,數(shù)據(jù)的寫入和查詢,分別由 Logstash 和 Kibana 代勞,作為測試、調(diào)研和排錯時的基本功,還是需要了解一下 ES 的增刪改查用法的。

基于HTTP協(xié)議,以JSON為數(shù)據(jù)交互格式的RESTful API

向Elasticsearch發(fā)出的請求的組成部分與其它普通的HTTP請求是一樣的:

curl?-X<VERB>?'<PROTOCOL>://<HOST>:<PORT>/<PATH>?<QUERY_STRING>'?-d?'<BODY>' #VERB?HTTP方法:GET,?POST,?PUT,?HEAD,?DELETE #PROTOCOL?http或者https協(xié)議(只有在Elasticsearch前面有https代理的時候可用) #HOST?Elasticsearch集群中的任何一個節(jié)點的主機名,如果是在本地的節(jié)點,那么就叫l(wèi)ocalhost #PORT?Elasticsearch?HTTP服務(wù)所在的端口,默認為9200 #PATH?API路徑(例如_count將返回集群中文檔的數(shù)量),PATH可以包含多個組件,例如_cluster/stats或者_nodes/stats/jvm #QUERY_STRING?一些可選的查詢請求參數(shù),例如?pretty參數(shù)將使請求返回更加美觀易讀的JSON數(shù)據(jù)

增-數(shù)據(jù)寫入:

????使用Postman工具? ?

????使用curl命令。

??????

curl?-X?POST?\http://10.100.172.111:9200/test-2017.08.28/testlog/?\-d?'{ "date"?:?"2017-07-28", "user"?:?"xiaoke", "mesg"?:?"這是第一條數(shù)據(jù)." }'

返回結(jié)果如下

{"_index":?"test-2017.08.28","_type":?"testlog","_id":?"AV2H9ikTjAqppDoQq45o","_version":?1,"result":?"created","_shards":?{"total":?2,"successful":?2,"failed":?0},"created":?true }

這個返回值意味著我們的索引請求已經(jīng)被成功創(chuàng)建,其中還包含了_index, _type以及_id的元數(shù)據(jù),以及一個新的元素_version

_index ES集群中的索引名稱(相當于MYSQL中的database)

_type 相當于數(shù)據(jù)庫中的表()

_id 就是id(可以自己指定也以自增,插入數(shù)據(jù)的唯一ID,刪除和更新單條數(shù)據(jù),都需要用到此ID)

查-數(shù)據(jù)獲取

????可以看到,在數(shù)據(jù)寫入的時候,會返回該數(shù)據(jù)的 _id 。這就是后續(xù)用來獲取數(shù)據(jù) 的關(guān)鍵:

????使用CURL方式

curl?-XGET?http://10.100.172.111:9200/test-2017.08.28/testlog/AV2IIkPKjAqppDoQrA7n?pretty

????返回結(jié)果

{"_index"?:?"test-2017.08.28","_type"?:?"testlog","_id"?:?"AV2IIkPKjAqppDoQrA7n","_version"?:?1,"found"?:?true,"_source"?:?{"date"?:?"2017-07-28","user"?:?"xiaoke","mesg"?:?"這是第一條數(shù)據(jù)."} }

這個 _source 里的內(nèi)容,正是之前寫入的數(shù)據(jù)。可以使用_source只獲取源數(shù)據(jù)部分

刪-數(shù)據(jù)刪除

????要刪除數(shù)據(jù),修改發(fā)送的 HTTP 請求方法為 DELETE 即可:

?curl?-XDELETE?http://10.100.172.111:9200/test-2017.08.28/testlog/AV2H9ikTjAqppDoQq45o?pretty

? ? 返回結(jié)果如下

{"found"?:?true,"_index"?:?"test-2017.08.28","_type"?:?"testlog","_id"?:?"AV2H9ikTjAqppDoQq45o","_version"?:?2,"result"?:?"deleted","_shards"?:?{"total"?:?2,"successful"?:?2,"failed"?:?0} }

刪除不單針對單條數(shù)據(jù),還可以刪除整個整個索引。甚至可以用通配符。

改-數(shù)據(jù)更新

????已經(jīng)寫過的數(shù)據(jù),同樣還是可以修改的。有兩種辦法,一種是全量提交,即指明

_id 再發(fā)送一次寫入請求。

????

[root@inte-es-node1?tmp]#?curl?-XGET?http://10.100.172.111:9200/test-2017.08.28/testlog/AV2IIkPKjAqppDoQrA7n?pretty {"_index"?:?"test-2017.08.28","_type"?:?"testlog","_id"?:?"AV2IIkPKjAqppDoQrA7n","_version"?:?1,"found"?:?true,"_source"?:?{"date"?:?"2017-07-28","user"?:?"xiaoke","mesg"?:?"這是第一條數(shù)據(jù)."} } [root@inte-es-node1?tmp]#?curl?-X?POST?http://10.100.172.111:9200/test-2017.08.28/testlog/AV2IIkPKjAqppDoQrA7n/?\ >??-d?'{ >?"date"?:?"2017-07-28", >?"user"?:?"xiaoke", >?"mesg"?:?"這是第2條數(shù)據(jù)."? >?}' {"_index":"test-2017.08.28","_type":"testlog","_id":"AV2IIkPKjAqppDoQrA7n","_version":2,"result":"updated","_shards":{"total":2,"successful":2,"failed":0},"created":false}[root@inte-es-node1?tmp]#? [root@inte-es-node1?tmp]#?curl?-XGET?http://10.100.172.111:9200/test-2017.08.28/testlog/AV2IIkPKjAqppDoQrA7n?pretty {"_index"?:?"test-2017.08.28","_type"?:?"testlog","_id"?:?"AV2IIkPKjAqppDoQrA7n","_version"?:?2,"found"?:?true,"_source"?:?{"date"?:?"2017-07-28","user"?:?"xiaoke","mesg"?:?"這是第2條數(shù)據(jù)."} }


????可以看到,我先查詢了一下_id為AV2IIkPKjAqppDoQrA7n的內(nèi)容,然后做了修改在次查詢。



轉(zhuǎn)載于:https://blog.51cto.com/kexiaoke/1951752

總結(jié)

以上是生活随笔為你收集整理的elasticsearch的增删改查的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。