Elasticsearch 批量增刪改查
阿新 • • 發佈:2020-12-13
技術標籤:Elasticsearch實戰elasticsearch
Elasticsearch實戰
step1
準備三條資料
PUT /technology/type/1
{
"title":"ES搜尋引擎",
"content":"Elasticsearch是一個基於Lucene的搜尋伺服器。",
"creator":"Lucene",
"cost":60
}
PUT /technology/type/2
{
"title":"Solr搜尋引擎","content":"Solr是一個高效能,採用Java開發,基於Lucene的全文搜尋伺服器",
"creator":"Lucene",
"cost":20
}
PUT /technology/type/3
{
"title":"RocketMQ",
"content":"訊息佇列 RocketMQ 版(原ONS)是阿里雲基於 Apache RocketMQ構建的低延遲、高併發、高可用、高可靠的分散式訊息中介軟體。","creator":"Alibaba",
"cost":30
}
step2
批量查詢
GET /_mget { "docs":[ { "_index":"technology", "_type":"type", "_id":1 }, { "_index":"technology", "_type":"type", "_id":2 } ] } GET /technology/_mget { "docs":[ { "_type":"type", "_id":1 }, { "_type":"type", "_id":2 } ] } GET /technology/type/_mget { "docs":[ { "_id":1 }, { "_id":2 } ] } GET /technology/type/_mget { "ids":[1,2] }
step3
批量增刪改bulk語法
有哪些型別的操作可以執行呢?
(1)delete:刪除一個文件,只要1個json串就可以了
(2)create:PUT /index/type/id/_create,強制建立
(3)index:普通的put操作,可以是建立文件,也可以是全量替換文件
(4)update:執行的partial update操作bulk api對json的語法,有嚴格的要求,每個json串不能換行,只能放一行,同時一個json串和一個json串之間,必須有一個換行
POST /_bulk
{"index":{"_index":"technology","_type":"type","_id":4}}
{"title":"Groovy","content":"Groovy是一種基於JVM(Java虛擬機器)的敏捷開發語言","creator":"Apache","cost":80}
{"update":{"_index":"technology","_type":"type","_id":4}}
{"doc":{"creator":"Alibaba"}}
{"create":{"_index":"technology","_type":"type","_id":4}}
{"creator":"Apache"}
{"delete":{"_index":"technology","_type":"type","_id":4}}
或者
POST /technology/type/_bulk
{"index":{"_id":4}}
{"title":"Groovy","content":"Groovy是一種基於JVM(Java虛擬機器)的敏捷開發語言","creator":"Apache","cost":80}
{"update":{"_id":4}}
{"doc":{"creator":"Alibaba"}}
{"create":{"_id":4}}
{"creator":"Apache"}
{"delete":{"_id":4}}
細心的讀者會發現,我們剛開始的三條資料可以通過以下命令批量執行
POST /technology/type/_bulk
{"index":{"_id":1}}
{"title":"ES搜尋引擎","content":"Elasticsearch是一個基於Lucene的搜尋伺服器。","creator":"Lucene","cost":60}
{"index":{"_id":2}}
{"title":"Solr搜尋引擎","content":"Solr是一個高效能,採用Java開發,基於Lucene的全文搜尋伺服器","creator":"Lucene","cost":20}
{"index":{"_id":3}}
{"title":"RocketMQ","content":"訊息佇列 RocketMQ 版(原ONS)是阿里雲基於 Apache RocketMQ構建的低延遲、高併發、高可用、高可靠的分散式訊息中介軟體。","creator":"Alibaba","cost":30}