背景
前面安裝運行了ElasticSearch
,在實際操作之前,先準備好數據,實際中一般是通過Logstash
等插件實現其他數據庫到ElasticSearch
的同步,這裏的演示採用直接導入的方式。
ElasticSearch官方有個數據集,文件內容的格式以行分隔:
每兩行爲一組,第一行指定索引id(也可爲空),第二行爲實際的數據體。
{"index":{"_id":"1"}}
{"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"[email protected]","city":"Brogan","state":"IL"}
...省略
以下提供兩種方法批量導入數據到ES的bank
索引:Postman
與Kibana
。通過ES提供的_bulk
API完成批量導入。
方法一:通過Postman完成數據批量導入
首先在Postman
中新建 POST
請求:localhost:9200/bank/_bulk
, 請求體Body下選擇binary
二進制, 然後Select File
選擇對應的json
文件, 最後點擊Send發送請求即可,見下圖。
方法二:通過Kibana完成數據批量導入
依次啓動ElasticSearch、Kibana,Kibana
默認啓動在5601
端口,打開(Dev Tools)開發工具。
左側爲請求編輯區,右側爲對應的響應。在左側輸入:
POST bank/_bulk
{"index":{"_id":"1"}}
{"account_number":1,"balance":39225,"firstname":"Amber","lastname":"Duke","age":32,"gender":"M","address":"880 Holmes Lane","employer":"Pyrami","email":"[email protected]","city":"Brogan","state":"IL"}
{"index":{"_id":"6"}}
{"account_number":6,"balance":5686,"firstname":"Hattie","lastname":"Bond","age":36,"gender":"M","address":"671 Bristol Street","employer":"Netagy","email":"[email protected]","city":"Dante","state":"TN"}
...省略
點擊運行,Kibana
中的執行結果爲:
驗證:查詢索引中所有數據
在Postman
中發送Post
請求:localhost:9200/bank/_search,請求體:
{
"query":{
"match_all": {}
}
}
得到bank
索引中所有1000條數據,表明批量導入操作成功:
批量刪除
有時候會有批量刪除的需求,尤其是在測試或演示時。
- 清空索引
僅刪除數據,保留索引以及映射。
在Postman
中發送Post
請求:localhost:9200/bank/_delete_by_query,請求體:
{
"query":{
"match_all": {}
}
}
- 刪除索引
在Postman
中發送Delete
請求:localhost:9200/bank,無參數。
Notes: 刪除索引爲高危操作,謹慎使用!!😎
If you have any questions or any bugs are found, please feel free to contact me.
Your comments and suggestions are welcome!