2016-09-16 127 views
1

我使用的是彈性搜索2.2。批量刪除elasticsearch

這裏是文檔

捲曲數 'XXXXXXXXX:9200/_cat /指數V''

yellow open app     5 1 28019178   5073  11.4gb   11.4gb 

在 「應用程序」 指數,我們有兩種類型的文件。

  1. 「日誌」
  2. 「系統日誌」

現在我想刪除所有類型下的 「系統日誌」 的文件。

因此,我嘗試使用以下命令

curl -XDELETE "http://xxxxxx:9200/app/syslog" 

,但我收到以下錯誤

No handler found for uri [/app/syslog] 

我已經安裝了刪除,通過查詢插件也是如此。有什麼辦法可以做批量刪除操作嗎?

現在,我通過提取id來刪除記錄。

curl -XDELETE "http://xxxxxx:9200/app/syslog/A121312" 

我花了大約5分鐘刪除10000條記錄。我有超過1000000個需要刪除的文檔。請幫忙。

[EDIT -1]

我跑的下面查詢刪除日誌類型文檔

curl -XDELETE 'http://xxxxxx:9200/app/syslog/_query' -d' 
{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "match_all": {} 
     } 
     ] 
    } 
    } 
}' 

而且結果低於

{"found":false,"_index":"app","_type":"syslog","_id":"_query","_version":1,"_shards":{"total":2,"successful":1,"failed":0}} 

我用於查詢以獲得從該消息索引

{ 
     "_index" : "app", 
     "_type" : "syslog", 
     "_id" : "AVckPMQnKYIebrQhF556", 
     "_score" : 1.0, 
     "_source" : { 
     "message" : "some test message", 
     "@version" : "1", 
     "@timestamp" : "2016-09-13T15:49:04.562Z", 
     "type" : "syslog", 
     "host" : "1.2.3.4", 
     "priority" : 0, 
     "severity" : 0, 
     "facility" : 0, 
     "facility_label" : "kernel", 
     "severity_label" : "Emergency" 
} 

[編輯2]

刪除被列爲插件查詢

sudo /usr/share/elasticsearch/bin/plugin list 
Installed plugins in /usr/share/elasticsearch/plugins/node1: 
    - delete-by-query 
+0

如果文檔數量很大,你倒是應該創建新的索引和重新索引你想保持 – blackmamba

回答

0

我建議你還是創建新的索引和重新索引你想保持

的文件,但如果你想使用通過查詢刪除你應該使用這個,

curl -XDELETE 'http://xxxxxx:9200/app/syslog/_query' 

{ 
    "query": { 
    "bool": { 
     "must": [ 
     { 
      "match_all": {} 
     } 
     ] 
    } 
    } 
} 

但你會留下映射。

+0

刪除查詢中的文件,你以上給出的只會刪除A121312。我想刪除索引「應用程序」下的所有文檔,並鍵入「系統日誌」 – srinath

+0

這不是工作..讓我現在編輯我的帖子與查詢,結果和示例消息,如果這將有助於 – srinath

+0

我也給出了示例消息。我不知道爲什麼查詢結果發現= False事件我們有系統日誌消息 – srinath