Elasticsearch调用_delete_by_query接口删除文档报错求助
解决Elasticsearch删除数据报错的问题
可能的原因及处理方案
校验API路径正确性
若你通过反向代理访问Elasticsearch,/elastic/前缀可能存在配置错误。先尝试去掉该前缀,使用标准请求路径:curl --location 'https://mypage.com/territorial_zone_all/_delete_by_query' \ --header 'Content-Type: application/json' \ --data ' { "query": { "match": { "_id":"yAq5An8BkOYqFwborrlp" } } }'若集群确实需要
/elastic/前缀,检查代理是否允许POST请求到该路径,以及路径映射是否正确指向Elasticsearch原生API。改用单条数据删除API
针对指定_id的单条数据,无需使用_delete_by_query,直接用更高效的文档删除接口:- Elasticsearch 7.x及以上版本:
curl --location --request DELETE 'https://mypage.com/elastic/territorial_zone_all/_doc/yAq5An8BkOYqFwborrlp' - Elasticsearch 6.x版本(需指定文档类型):
curl --location --request DELETE 'https://mypage.com/elastic/territorial_zone_all/doc/yAq5An8BkOYqFwborrlp'
- Elasticsearch 7.x及以上版本:
确认版本兼容性
_delete_by_queryAPI从Elasticsearch 2.3版本才开始支持,若集群版本低于此,该接口不存在会返回404。可通过GET请求https://mypage.com/elastic/查看集群版本信息。检查代理的请求方法限制
若使用Nginx、API网关等中间件,可能限制了POST/DELETE方法访问特定路径。检查代理配置,确保允许对应方法请求目标路径。
内容的提问来源于stack exchange,提问作者andres castellanos
相关产品推荐
相关产品推荐

