请原谅我,如果这是非常基本的,但我有Python 2.7和Elasticsearch 2.1.1,我只是试图删除索引使用
es.delete(index='researchtest', doc_type='test')
但这给了我
return func(*args, params=params,**kwargs)
TypeError: delete() takes at least 4 arguments (4 given)
我也试过
es.delete_by_query(index='researchtest', doc_type='test',body='{"query":{"match_all":{}}}')
但我得到
AttributeError: 'Elasticsearch' object has no attribute 'delete_by_query'
知道为什么吗?python 2.1.1的api改变了吗?
https://elasticsearch-py.readthedocs.org/en/master/api.html#elasticsearch.client.IndicesClient.delete
5条答案
按热度按时间xzabzqsa1#
对于ES 8+,请使用:
对于旧版本,请使用以下表示法:
nhn9ugyo2#
如果你有一个文档对象(模型),并且你正在使用elasticsearch-dsl,特别是在Python-3.X中,你可以直接调用模型的
_index
属性的delete
方法。正如文档中所述:
_index
属性也是load_mappings方法的所在地,该方法将更新elasticsearch索引上的Map。如果您使用动态Map并希望类知道这些字段(例如,如果您希望Date字段被正确序列化(反序列化)),这将非常有用:rjee0c153#
由于在API方法中传递传输选项在Elasticsearch python客户端8+中被弃用,指定应该忽略的HTTP状态代码的方法(例如,为了防止在目标索引不存在的情况下出错)现在可以使用
Elasticsearch.options()
:(see文档)。
holgip5t4#
如果您使用的是elasticsearch-dsl,请使用
yfwxisqw5#
如果您使用旧版本ES8+: