ElasticSearch5.x 刪除資料
以下測試在elasticsearch5.6.10版本。
首先要說明的是ElasticSearch從2.x開始就已經不支援刪除一個type了,所以使用delete命令想要嘗試刪除一個type的時候會出現如下錯誤:
No handler found for uri [/dating_profile/zhenai/] and method [DELETE]
測試
假如存在一個名為dating_profile的index和zhenai的type:
curl -XDELETE http://192.168.1.102:9200/dating_profile/zhenai
執行後報錯如下:
所以現在如果想要刪除type有兩種選擇:
***1、***重新設定index。
***2、***刪除type下的所有資料。
如果重新設定index,官方建議:
Delete Mapping
It is no longer possible to delete the mapping for a type. Instead you should delete the index and recreate it with the new mappings.
刪除index
如下,刪除名為dating_profile的index:
curl -XDELETE http://192.168.1.102:9200/dating_profile/
刪除成功,返回值為:
{
"acknowledged": true
}
刪除type下的所有資料
想要一次性刪除type為zhenai所有資料內容的話,可以參考官方文件:
其中有講到,可以透過_delete_by_query限制到一個單獨的type,如下,它僅僅會刪除index為dating_profile下type為zhenai下的所有資料:
curl -X POST "http://192.168.1.102:9200/dating_profile/zhenai/_delete_by_query?conflicts=proceed" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}'
刪除成功,返回值如下:
{
"took": 78,
"timed_out": false,
"total": 107,
"deleted": 107,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": []
}
也可以一次性刪除多個index和多個type下的文件,如下:刪除index為dating_profile下的type為zhenai的資料;同時刪除index為movies下的type為movie的資料。
curl -X POST "http://192.168.1.102:9200/dating_profile,movies/zhenai,movie/_delete_by_query" -H 'Content-Type: application/json' -d'
{
"query": {
"match_all": {}
}
}
'
返回值如下:
{
"took": 93,
"timed_out": false,
"total": 61,
"deleted": 61,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": -1.0,
"throttled_until_millis": 0,
"failures": []
}
題外話
5.xES提供的Reindex可以直接在搜尋叢集中對資料進行重建。如下可以直接修改mapping。
如下將index為dating_profile改為new_dating_profile
curl -XPOST "http://192.168.1.102:9200/_reindex?pretty" -H 'Content-Type: application/json' -d'
{
"source": {
"index": "dating_profile"
},
"dest": {
"index": "new_dating_profile"
}
}
'
這樣執行後,舊的index還是存在的,dating_profile和new_dating_profile都可以查到舊資料。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1020/viewspace-2823960/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 刪除資料
- whk我【資料刪除】你個【資料刪除】的
- indexedDB 刪除資料Index
- 刪除elasticsearch資料Elasticsearch
- indexedDB 刪除資料庫Index資料庫
- 2.11 刪除資料庫資料庫
- CoLab刪除資料夾
- MySQL刪除資料表MySql
- 刪除重複資料
- oracle刪除重資料方法Oracle
- python 刪除大表資料Python
- mongodb刪除重複資料MongoDB
- Linux 刪除資料夾命令Linux
- Laravel 資料庫裡的資料刪除Laravel資料庫
- 6.12php對資料庫的刪除和批量刪除PHP資料庫
- 資料夾刪除不了怎麼辦?資料夾刪除不了的解決方法
- MongoDB資料庫中更新與刪除資料MongoDB資料庫
- sqlserver 億級資料刪除方案SQLServer
- sqlserver中刪除重複資料SQLServer
- 如何刪除Removable Drives資料夾?REM
- CnosDB的資料更新和刪除
- local資料夾能刪除嗎
- roaming資料夾可以刪除嗎
- 誤刪除資料了怎麼辦?小編交易誤刪除資料的恢復方法
- 【北亞資料恢復】誤刪除oracle表和誤刪除oracle表資料的資料恢復方法資料恢復Oracle
- Laravel 批量插入(如果資料存在刪除原資料)Laravel
- kettle 實時同步資料(插入/更新/刪除資料)
- win10 appdata資料夾是否可以刪除_win10 appdata資料夾哪些可以刪除Win10APP
- win10怎麼用命令刪除資料夾_win10命令刪除資料夾方法Win10
- 電腦中temp資料夾可以刪除嗎 電腦中temp資料夾怎麼刪除
- 簡單介紹mysql如何刪除資料表和關聯的資料表刪除詳情MySql
- oracle徹底刪除資料檔案Oracle
- MySQL超大表刪除資料過程MySql
- windows下Oracle資料庫完全刪除WindowsOracle資料庫
- indexedDB 刪除物件倉庫所有資料Index物件
- ORACLE刪除-表分割槽和資料Oracle
- sql 多表關聯刪除表資料SQL
- Linux下刪除資料夾的命令Linux