2017-06-02 51 views
0

是否可以刪除elasticsearch索引中特定類型的所有文檔? - 它是否也會影響類型映射? - 我想保留該類型的映射。Elasticsearch類型數據刪除

使用elasticsearch 2.2

+0

https://www.elastic.co/guide/en/elasticsearch/reference/2.2/docs-delete.html –

回答

1

找到與此相關here答案。以下內容直接來自該答案。

你可以使用刪除查詢插件43。這裏有一個例子:

我們創建了兩種類型的索引,並添加一些文件:

POST /_bulk 
{"index":{"_index":"mammals","_type":"people"}} 
{"tag_line":"I am Mike"} 
{"index":{"_index":"mammals","_type":"people"}} 
{"tag_line":"I am Hanna"} 
{"index":{"_index":"mammals","_type":"people"}} 
{"tag_line":"I am Bert"} 
{"index":{"_index":"mammals","_type":"animals"}} 
{"tag_line":"I am a dog"} 
{"index":{"_index":"mammals","_type":"animals"}} 
{"tag_line":"I am a cat"} 

當我們查詢所有的文件,我們得到5個結果:

GET /mammals/_search?size=0 
{ 
    "query": { 
     "match_all": {} 
    } 
} 

現在我們可以刪除所有類型的文檔「動物」:

DELETE /mammals/animals/_query 
{ 
    "query": { 
     "match_all": {} 
    } 
} 

這隻會工作時delete-by-query插件已安裝。

當我們再次搜索所有文檔時,我們只會得到3個結果,因爲動物已經走了。

P.S:這個插件是在2.x版本中,而不是在5.x中。所以在5.x中可以有其他方法來做到這一點。我相信這種刪除不會影響映射,因爲這隻會刪除單個文檔。

+0

謝謝Rajind!那麼,如果沒有在elasticsearch-2.2中安裝delete-by-query插件,我無法刪除特定類型的所有文檔? – shan

+0

@shan據我所知,沒有別的辦法。 –