我是ElasticSearch的新手.我正在试图弄清楚如何从ElasticSearch中删除数据.我删除了索引.但是,这似乎并没有真正删除数据本身.我见过的其他内容指向" 按查询删除"功能.但是,我甚至不确定要查询什么.我知道我的索引.从本质上讲,我想弄清楚如何做一个
DELETE FROM [Index]
来自Chrome中的PostMan.但是,我没有运气.似乎无论我做什么,数据都会悬而未决.到目前为止,我已经使用PostMan中的DELETE HTTP Verb成功删除了索引并使用了以下URL:
http://localhost:9200/[indexName]
但是,这似乎并没有实际删除数据(也就是文档)本身.
如果您需要删除所有索引,这可能会派上用场:
curl -X DELETE 'http://localhost:9200/_all'
您可以使用cURL
或直观地使用开源爱好者为Elasticsearch创建的众多工具之一进行删除.
使用cURL
curl -XDELETE localhost:9200/index/type/documentID
例如
curl -XDELETE localhost:9200/shop/product/1
然后,您将收到有关这是否成功的回复.您也可以使用索引删除整个索引或类型,您可以通过省略文档ID来删除类型 -
curl -XDELETE localhost:9200/shop/product
如果您想删除索引 -
curl -XDELETE localhost:9200/shop
如果您希望删除遵循某个命名约定的多个索引(请注意*
,通配符), -
curl -XDELETE localhost:9200/.mar*
目视
上面提到了各种各样的工具,我不会在这里列出它们但我会将你链接到一个让你立即开始的工具,位于这里.此工具称为KOPF,要连接到您的主机,请单击左上角的徽标并输入群集的URL.
连接后,您将能够管理整个群集,删除,优化和调整群集.
该文件(或权威指南)说,你也可以使用一个查询,删除所有指标:
curl -XDELETE 'http://localhost:9200/*'
还有一个重要的注意事项:
对于某些人来说,使用单个命令删除所有数据的能力是一个非常可怕的前景.如果您想消除意外批量删除的可能性,可以在以下内容
true
中设置以下内容elasticsearch.yml
:
action.destructive_requires_name: true
你必须发送一个DELETE
请求
http://[your_host]:9200/[your_index_name_here]
您还可以删除单个文档:
http://[your_host]:9200/[your_index_name_here]/[your_type_here]/[your_doc_id]
我建议你使用弹力锤.
删除后,您可以使用以下URL查找索引是否仍然存在: http://[your_host]:9200/_stats/
祝好运!
删除索引将删除映射并键入.您可以通过以下查询删除所有行
curl -XDELETE 'localhost:9200/twitter/tweet/_query?pretty' -d' { "query": { "match_all": } }'
但是对于上面的查询,你需要安装按查询删除插件,因为Elasticsearch的2.0.0-beta1从主api删除了逐个查询
Install delete-by-query plugin sudo bin/plugin install delete-by-query
更多
http://blog.appliedinformaticsinc.com/how-to-delete-elasticsearch-data-records-by-dsl-query/
#list all index: curl -XGET http://localhost:9200/_cat/indices?v
#delete index: curl -XDELETE 'localhost:9200/index_name' #delete all indices: curl -XDELETE 'localhost:9200/_all' #delete document : curl -XDELETE 'localhost:9200/index_name/type_name/document_id'
安装kibana.Kibana有一个更智能的开发工具,可以帮助您轻松构建查询.
对于按查询批量删除,您可以使用特殊的按查询删除API:
$ curl -XDELETE 'http://localhost:9200/twitter/tweet/_query' -d '{ "query" : { "term" : { "user" : "kimchy" } } }历史上曾删除过API,然后又重新引入了
谁很有趣,历史悠久。
在该答案的第一个版本中,我指的是Elasticsearch 1.6版的文档。在该功能中,该功能被标记为已弃用,但效果很好。
在Elasticsearch 2.0版中,它已移至单独的插件。甚至解释了为什么它成为插件的原因。
它再次出现在5.0版的核心API中!
您可以按如下所示在python中删除索引
from elasticsearch import Elasticsearch es = Elasticsearch([{'host':'localhost', 'port':'9200'}]) es.index(index='grades',doc_type='ist_samester',id=1,body={ "Name":"Programming Fundamentals", "Grade":"A" }) es.indices.delete(index='grades')
最简单的方法!
Endpoint : http://localhost:9201/twitter/_delete_by_query Payload : { "query": { "match": { "message": "some message" } } }
twitter
弹性搜索的索引在哪里
参考; https://www.elastic.co/guide/zh-CN/elasticsearch/reference/current/docs-delete-by-query.html