我想使用python
删除ES中的一些数据使用代码:
query={"query":
{"bool":
{"must": [{"match_phrase_prefix": {"docker_image_long_name": iname}},
{"match_phrase_prefix": {"timestamp": crawl_time}}]}}}
doc = es.delete_by_query(index=c_index,doc_type='framedata', body=query)
print doc
结果:
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 490, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 491, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 492, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 493, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 494, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 495, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 496, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 497, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 498, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 499, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 500, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 501, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 502, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 503, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 504, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 505, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 506, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 507, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 508, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 509, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 510, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 511, u'_index': u'crawledframe-2018.04.13'}
{u'_type': u'framedata', u'_id': u'_delete_by_query', u'created': False, u'_version': 512, u'_index': u'crawledframe-2018.04.13'}
但是,数据总数不会改变。
我的ES版本是1.7.5。
如何使用查询删除文档?
是否需要更改任何设置才能使用删除?
答案 0 :(得分:0)
问题是您的ES服务器是1.7.5,而您使用的Python客户端库是6.2.0,因此它不兼容。
您有几个选择:
一个。您可以将ES服务器升级到6.2.0并复制数据
B中。您可以将Python客户端库降级到1.7.0,1.8.0或1.9.0
℃。您可以使用以下命令删除curl数据:
curl -XDELETE localhost:9200/c_index/framedata/_query -d '{
"query": {
"bool": {
"must": [
{
"match_phrase_prefix": {
"docker_image_long_name": "<replace-me>"
}
},
{
"match_phrase_prefix": {
"timestamp": "<replace-me>"
}
}
]
}
}
}'