当前位置: 首页 > 知识库问答 >
问题:

从Python 3. x中的elasticsearch索引中删除所有文档

封昊天
2023-03-14

如何从索引中删除Elasticsearch中的所有文档,而不删除索引本身?

from elasticsearch import Elasticsearch
es = Elasticsearch("http://elasticsearch.internal:9200")

Elasticsearch.delete(es, index="index")

回答

TypeError: delete() missing 1 required positional argument: 'id'

sql中是否有截断表之类的选项。我知道我可以循环所有id并删除它们中的每一个,但例如通配符可能有一些神奇的选项。

共有2个答案

俞俊逸
2023-03-14

elasticsearch。Elasticsearch。delete方法不是静态方法,应该使用elasticache的实例调用。Elasticsearch,这样调用时,self将自动作为参数传递给delete方法。

示例

from elasticsearch import Elasticsearch

es = Elasticsearch()

参考:https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch

其次,如这里的弹性搜索文档所述,“您可以使用DELETE从索引中删除文档。您必须指定索引名称和文档ID。”因此,您应该同时提供这两者。

示例:

doc_id = "my_document"
my_index = "index"
es.delete(id=doc_id, index=my_index)

参考:https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.delete

关志勇
2023-03-14

Elasticsearch。delete\u by\u query方法可用于删除与查询匹配的文档。

https://elasticsearch-py.readthedocs.io/en/master/api.html#elasticsearch.Elasticsearch.delete_by_query

indices = ['index1', 'index2', 'other-index-names']
es.delete_by_query(index=indices, body={"query": {"match_all": {}}})
 类似资料:
  • curl-xdelete“http://localhost:9200/index-consumo_react_mysql/_doc/_query”-d'{“query”:{“match_all”:{}}}‘ 错误: {“错误”:“不支持Content-Type header[application/x-www-form-urlencoded]”,“status”:406}

  • 问题内容: 我知道如何删除整个ElasticSearch索引,但是如何从索引中清除所有文档? 我的动机:我想拥有一个“ ReIndex”方法,该方法可以清除索引的全部内容,以便可以重新加载所有文档。 ElasticSearch语法非常有用。NEST语法会更好。 问题答案: 我在Nest中寻找类似的东西,我想将语法放在这里,以便任何人查看:

  • 问题内容: 我已经将ElasticSearch更新为2.1版本。 在此之前,我使用以下命令删除了每种类型的文档: 从现在开始,这是响应: HTTP / 1.1 400错误的请求内容类型:文本/纯文本;字符集= UTF-8 内容长度:61 找不到uri [/ living / inputs]和方法[DELETE]的处理程序 我究竟做错了什么? 问题答案: 从2.0开始,不再支持删除映射类型。 如果只

  • 问题内容: 我有一个包含多个重复条目的索引。它们具有不同的ID,但其他字段具有相同的内容。 例如: 删除重复项后: 有没有一种方法可以删除所有重复项并仅保留一个不同的条目,而无需手动比较所有条目? 问题答案: 我使用rails,如有必要,我将使用命令导入内容,该命令将删除并重新索引该索引和类型的所有内容……但是不确定您在哪个环境中运行ES。我只能看到的问题是数据源是否您正在从中导入(即数据库)的记

  • 我们正在使用AWS弹性搜索日志。日志通过Logstash连续流式传输。定期删除旧索引的最佳方法是什么? 我搜索了一下,推荐的各种方法有: > 使用lambda删除旧索引-https://medium.com/@egonbraun/perioadly-cleaning-ellasticsearch-indexes-using-aws-lambda-f8df0ebf4d9f 使用计划的docker容器

  • 问题内容: 我的许多日志都以logstash-Year- Week格式编制索引。那就是如果我想删除超过几周的索引,如何在elasticsearch中实现。有没有简单,无缝的方法可以做到这一点? 问题答案: 策展人将是这里的理想之选。您可以在这里找到链接-https: //github.com/elastic/curator 如下所示的命令应该可以正常工作- 您可以将其保留在CRON中,以偶尔删除索