刪除數據分為兩種:一種是刪除索引(數據和表結構同時刪除,作用同SQLSERVER 中 DROP TABLE "表格名" ),
另一種是刪除數據(不刪除表結構,作用同SQLSERVER中Delete 語句)。
一:刪除索引(結構和數據同時刪除):
刪除單個索引可以使用命令 【DELETE /索引名稱】
Delete 索引名稱
刪除多個索引可以使用命令 【DELETE /索引1,索引2】
Delete 索引名稱1,索引名稱2
【DELETE /testindex*】:刪除以testindex 開頭的所有索引文件(如果配置文件中禁止后此方式不能使用);
Delete 索引名稱*
刪除全部索引命令 【DELETE /_all】(配置文件中禁止后此方式不能使用) 或者 【DELETE /*】(配置文件中禁止后此方式不能使用)
Delete _all
注意事項:對數據安全來說,能夠使用單個命令來刪除所有的數據可能會帶來很可怕的后果,所以,為了避免大量刪除,
可以在elasticsearch.yml 配置文件中修改 action.destructive_requires_name: true
設置之后只限於使用特定名稱來刪除索引,使用_all 或者通配符來刪除索引無效(上述中說明配置文件中禁止后此方式不能使用)】
二:刪除數據(只刪除數據):
1.:根據主鍵刪除數據:【DELETE /索引名稱/類型名稱/主鍵編號】
Delete 索引名稱/文檔名稱/主鍵編號
2:根據匹配條件刪除數據:(注意請求方式是Post)
POST 索引名稱/文檔名稱/_delete_by_query { "query":{ "term":{ "_id":100000100 } } }
如果你想根據條件來刪除你的數據,則在Query查詢體中組織你的條件就可以了。
3:刪除所有數據:(注意請求方式是Post,只刪除數據,不刪除表結構)
POST /testindex/testtype/_delete_by_query?pretty { "query": { "match_all": { } } }