我正在使用2种类似的ES方法来加载和删除文档:
result = es.search(index='users_favourite_documents',
doc_type='favourite_document',
body={"query": {"match": {'user': user}}})
以及:
result = es.delete_by_query(index='users_favourite_documents',
doc_type='favourite_document',
body={"query": {"match": {'user': user}}})
第一个工作正常并返回预期的记录。
第二个抛出异常:
"传输错误(404,"{
"已找到":假,
"索引":"用户收藏夹文档",
"类型":"收藏夹文档",
"ID":"查询","版本":1,
"碎片":{"总计":2,"成功":2,"失败":0}}")
我哪里做错了?
2条答案
按热度按时间9avjhtql1#
我使用了版本6.2.0的弹性堆栈和API的使用工程删除如下:
如果您的值为INT,请删除message_value中的“”。
w80xi6nr2#
如果您运行的是ES的最新版本(5/6/7/8),_delete_by_query endpoint is supported natively。无需安装任何东西。
如果您运行的是ES 2.x,您需要确保首先安装了delete-by-query plugin:
在ES_HOME文件夹中,运行以下命令:
然后重新启动ES,
es.delete_by_query(...)
调用将正常工作。如果您运行的是ES 1.x,那么delete-by-query是核心的一部分,应该可以开箱即用。