从索引/types中删除所有文档而不删除types

我知道可以通过deleteByQuery删除某个types的所有文档。

例:

curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "term" : { "user" : "kimchy" } } }' 

但我没有任何条款,只是想删除该types的所有文件,无论是什么条款。 达到这个目标的最佳实践是什么? 空的术语不起作用。

链接到deleteByQuery

我相信,如果你通过查询结合删除匹配所有它应该做你在找什么,就像这样(使用你的例子):

 curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "match_all" : {} } }' 

或者你可以删除这个types:

 curl -XDELETE http://localhost:9200/twitter/tweet 

Delete-By-Query插件已被删除,以支持核心中新的Delete By Query API实现。 在这里阅读

 curl -XPOST 'localhost:9200/twitter/tweet/_delete_by_query?conflicts=proceed&pretty' -d' { "query": { "match_all": {} } }' 

Torsten Engelbrecht在John Petrones的回应中的评论扩展了:

 curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query": { "match_all": {} } }' 

(我不想编辑约翰的答复,因为它已经起来了,被设置为答案,我可能会引入一个错误)

对于ElasticSearch 5.x,delete_by_query API是默认的

POST: http://localhost:9200/index/type/_delete_by_query

 { "query": { "match_all": {} } } 

从Elasticsearch 2.x开始删除不再允许,因为文档保留在索引导致索引损坏。

注意ES2 +

从ES 1.5.3开始,逐个查询API被弃用,并且从ES 2.0开始被完全删除

删除查询现在是一个插件 ,而不是API。

为了使用Delete By Query插件,您必须在群集的所有节点上安装插件:

 sudo bin/plugin install delete-by-query 

安装完成后,所有节点都必须重新启动。

插件的用法与旧的API相同。 你不需要在你的查询中改变任何东西 – 这个插件只会使它们工作。


*有关为什么API被删除的完整信息,你可以在这里阅读更多。

(声望不够高评论)John Petrone的答案的第二部分是作品 – 不需要查询。 它将删除包含在该types中的types和所有文档,但只要将新文档编入索引types,就可以重新创build该文档。

只是为了澄清: $ curl -XDELETE 'http://localhost:9200/twitter/tweet'

注意:这确实删除了映射! 但是如前所述,通过创build一个新的文档可以很容易地重新映射。

只是为了增加几分钱。

在顶部提到的“delete_by_query”仍然可以作为elasticsearch 2.x中的插件使用。

虽然在最新的即将推出的5.x版本中,它将被replace为“通过查询API删除”

Elasticsearch 2.3的选项

  action.destructive_requires_name: true 

在elasticsearch.yml中做旅行

  curl -XDELETE http://localhost:9200/twitter/tweet 

1.)使用curl: – 删除整个索引: –

curl -XDELETE'localhost:9200 / indexName?pretty'
例如)curl -XDELETE'localhost:9200 / mentorz?pretty'

有关更多详细信息,请点击这里 – https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-delete-index.html

2.)使用查询删除: – 删除整个索引: –

curl -XDELETE'http :// localhost:9200 / mentorz / users / _query'- d
“{
“查询”:
{
“match_all”:{}
}
}”

*这里mentorz-index名称和用户types