我想刪除Elasticsearch一個類型中索引的所有文件,使用HTTP/REST API,但我不希望刪除的映射關係對這種類型的刪除類型的文檔Elasticsearch
我怎樣才能在URL中構建查詢來執行此操作?
我想刪除Elasticsearch一個類型中索引的所有文件,使用HTTP/REST API,但我不希望刪除的映射關係對這種類型的刪除類型的文檔Elasticsearch
我怎樣才能在URL中構建查詢來執行此操作?
之前執行的命令,指數/製圖州; (從elasticsearch頭部插件 web界面截取的屏幕截圖)
命令;
curl -XDELETE 'http://localhost:9200/publishercategoryeu/autocomplete/_query' -d '
{
"query": {
"bool": {
"must": [
{
"match_all": {}
}
]
}
}
}
'
結果;
執行命令後,索引/映射狀態;
正如我們可以看到,我們刪除,而不刪除索引或類型(映射)一個類型(映射)中收錄的所有文件。
一個簡單的通過帶有match_all查詢的查詢應該可以做到這一點。 你可以在這裏攫取更多的信息:
或者,您可以刪除整個類型和使用模板的API。只要將一個文件放入包含模板的config/templates /文件夾中,就不會鬆動它。當您刪除映射時,映射確實會丟失,但只要您重新編制索引,模板就會重新使用。這裏的一些信息:
編輯:新的刪除API:https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html
似乎棄用 – Tjorriemorrie
https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-delete.html –
隨着在elasticsearch頭插件我是能夠刪除從logstash
指數logs
類型的所有文件,而不刪除映射以下命令:
{"query":{"match_all":{}}}
與自由空間的磁盤上您還必須在刪除文檔後優化索引(操作 - >優化頭部插件中的索引logstash
)。
如果你想這樣做在golang,使用「olviere/elastic」庫,您可以使用此代碼,假設你有一個客戶端yourClient
,並yourIndex
和yourType
:
bq := elastic.NewBoolQuery()
bq.Must(elastic.NewMatchAllQuery())
_, err := elastic.NewDeleteByQueryService(yourClient).
Index(yourIndex).
Type(yourType).
Query(bq).
Do()
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query?q=user:kimchy'
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
以前的答案將不適用於最新版本的Elasticsearch
。 「通過查詢刪除」已從Elasticsearch 2.0
棄用。 Elasticsearch
文檔說它在併發索引期間會導致OutOfMemoryError,並可能導致主副本變得不一致。如果您想在Github之後追蹤問題的歷史記錄。
它現在需要多個步驟才能從type
中刪除所有文檔。
查找您需要刪除的文檔的所有id。執行此操作的最有效方法是使用scroll/scan API查找給定類型的所有匹配ID。
發出批量請求以通過ID刪除文檔。下面提供了一個例子。
curl -XPOST 'http://localhost:9200/_bulk' -d '
{ "delete": { "_index": "index", "_type": "type", "_id": "1"}
{ "delete": { "_index": "index", "_type": "type", "_id": "2"}'
請注意,如果你提供一個文本文件輸入捲曲,你必須使用的--data-binary
標誌而非純-d
。
這不起作用 – localhost
'twitter'是索引名稱,'tweet'是映射命令中的名稱。你是否正確地將它們替換爲你的案件? – csonuryilmaz
當然。我認爲這取決於elasticsearch版本。我也有一些來自elasticsearch指南的疑問,並得到一個不可解除的例外。 – localhost