首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法将"search_phase_execution_exception“解析为Go结构*elastic.Error并获取根本原因

无法将"search_phase_execution_exception“解析为Go结构*elastic.Error并获取根本原因
EN

Stack Overflow用户
提问于 2022-11-23 08:33:09
回答 1查看 8关注 0票数 0

我的部门使用olivere弹性v7.0.26作为ElasticSearch客户端,有时我们的前端系统会返回一些错误消息,例如"Error 400 (坏请求):所有碎片失败的type=search_phase_execution_exception“,但是没有任何其他有用的msg来帮助故障排除,所以我搜索了GitHub关于解析*elastic.Error错误的信息,代码如下:

代码语言:javascript
复制
if err != nil {
   log.WithFields(ctx, log.Fields{}).WithError(err).Warn("list query es error")
   if ex, ok := err.(*elastic.Error); ok {
      log.WithFields(ctx, log.Fields{"query": query, "status": ex.Status, "detail": ex.Details}).WithError(ex).Warnf("list query es err")
   }
   return res, err
}

但奇怪的是,我们的日志系统上打印了“列表查询es错误”,但是下一个日志“列表查询err”没有,我使用了深度分页(大型from+size)检查日志,它工作并打印弹性错误,例如根本原因,这样我就可以得到max_result_window tips..But,它返回一个未解析错误,该错误作为search_phase_execution_exception错误返回,公司代码不允许粘贴到开源网站,我只想知道什么错误可以使elasticsearch返回search_phase_execution_exception和errcode 400?非常感谢您的帮助!

与上面的描述相同,但我需要强调的一点是,问题并不总是发生,所以我可以排除索引映射字段类型错误,例如“text/关键字”,只想得到整个错误/异常elasticsearch可以返回,但是我不能在弹性指南上找到相关的文档,如果你能提供这方面的指导/文档,那就可以了。

EN

回答 1

Stack Overflow用户

发布于 2022-11-25 07:02:55

嗯,这似乎是个笑话XD,我从来没有学过一些故障排除技术,但是在我问了这个问题之后,我意识到我可以得到ElasticSearch服务器日志,所以我询问了我们公司的SRE并得到了日志,这是术语查询超出最大值的错误,原因是我们的RPC接口返回了一个关于零数据编辑键的异常结果,这将是一个很大的关键问题,但是我们找到并修复了它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74543791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档