一、ES刪除Index請求
在ES中刪除一個Index需要向ES發送一個DELETE請求,請求的URL包含要刪除的Index的名稱。如果請求成功,將會返回一個JSON響應,表示請求已經成功執行。
DELETE /index_name
其中:
/index_name
:必須指定要刪除的Index的名稱。
二、ES刪除索引
使用ES API可以輕鬆刪除索引。在刪除索引之前,需要確保索引中沒有任何文檔或數據。以下是刪除索引的代碼:
# Python from elasticsearch import Elasticsearch es = Elasticsearch([{'host': 'localhost', 'port': 9200}]) es.indices.delete(index='index_name') # CURL curl -XDELETE 'http://localhost:9200/index_name'
三、ES刪除數據
在ES中,數據和文檔是等價的,因此如果需要刪除數據,也就是刪除文檔。ES提供了兩種方法可以刪除一個文檔,一種是基於文檔的ID,另一種是基於查詢刪除。
1. ES刪除文檔
基於文檔的ID刪除:
# Python es.delete(index='index_name', doc_type='doc_type', id='1') # CURL curl -XDELETE 'http://localhost:9200/index_name/doc_type/1'
其中:
index_name
:需要刪除文檔的Index的名稱。doc_type
:需要刪除文檔的類型。id
:需要刪除文檔的ID。
2. ES刪除一條數據
基於查詢刪除:
# Python es.delete_by_query(index='index_name', body={ 'query': { 'match': {'fieldName': 'value'} } }) # CURL curl -XPOST 'http://localhost:9200/index_name/_delete_by_query' -H 'Content-Type: application/json' -d '{"query": {"match": {"fieldName": "value"}}}'
其中:
index_name
:需要刪除數據的Index的名稱。body
:查詢條件。fieldName
:需要匹配的欄位名。value
:需要匹配的欄位值。
四、ES刪除欄位
在ES中刪除一個欄位,需要通過更新文檔的方式來實現。在更新文檔時,需要傳入新的文檔,但不需要包含要刪除的欄位。在存儲新文檔後,ES會自動刪除原始文檔中的要刪除的欄位。
# Python body={ 'doc': { 'field1': 'value1' }, 'script': 'ctx._source.remove("fieldName")' } es.update(index='index_name', doc_type='doc_type', id='1', body=body) # CURL curl -XPOST 'http://localhost:9200/index_name/doc_type/1/_update' -H 'Content-Type: application/json' -d '{"doc": {"field1": "value1"}, "script": "ctx._source.remove(\"fieldName\")"}'
其中:
field1
:需要保留的欄位。fieldName
:需要刪除的欄位。
五、ES刪除ES命令
在ES中,可以通過以下API查看已有的ES命令:
GET /_cat/aliases?v&s=name:asc
刪除ES命令也很簡單,只需要向ES發送DELETE請求,請求的URL包含要刪除的ES命令的名稱即可。
DELETE /_alias/existing_alias_name
其中:
/existing_alias_name
:需要刪除的ES命令的名稱。
六、刪除ESIM後恢復
在ESIM(Elasticsearch Index Management)中,如果要刪除一個Index,可以通過以下命令:
DELETE ${index-name}
在刪除Index之前,可以通過以下命令備份Index:
POST /.deputy/${snapshot_name} { "source": { "index": "${index_name}" }, "name": "${snapshot_name}" }
如果需要恢復Index,可以通過以下命令:
PUT /${restored_index_name} { "aliases": { "${index_name}": {} } } POST /.deputy/_restore/${snapshot_name}?wait_for_completion=true { "indices": "${restored_index_name}" }
其中:
/deputy
:備份的Index名稱。snapshot_name
:備份的快照名稱。restored_index_name
:要恢復的Index名稱。index_name
:原始Index的名稱。
七、ES刪除索引下所有數據
刪除Index時,需要確保其中沒有任何文檔或數據。如果需要刪除Index下的所有數據,可以使用以下命令:
DELETE ${index_name}/_query { "query": { "match_all": {} } }
其中:
index_name
:需要刪除數據的Index的名稱。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/256551.html