理解elasticsearch查询解析异常并保存海牛

时间:2015-06-16 15:55:37

标签: elasticsearch

我正在尝试找到一种方法来处理Elasticsearch查询解析异常,这种方式不会像对待机器那样对待我。我想成为一个人,这意味着当我的查询中出现语法错误时,我想要一条信息丰富的简明消息。

是否有现成的服务/宝石/技术可以实现这一目标?也许它是一个解析器,你喂它ES乱码查询解析异常消息,它给你回来的东西(更多)有用吗?或者它可能是一个ES插件,只是简单地改变了解析异常的呈现方式。

我最想要的特征 -

  1. 简洁,总结问题不超过80个字符,另外200个解释如何解决问题
  2. 它告诉我错误发生在我的查询中的确切位置(错误常常粗略地指导我的调试工作;如from[-1],size[-1]: Parse Failure [Expected [START_OBJECT] under [and], but got a [START_ARRAY] in [filter]]]中那样模糊地引导我注意帮助我调试,但肯定它可以告诉我发生语法错误的行或字符)
  3. 人类可读 - 它摆脱了{(;之类的机器友好,并使用了正确的英语而不是行话。
  4. 非常感谢您帮助减少这些例外所带来的认知负担。

1 个答案:

答案 0 :(得分:0)

我不确定这是否有帮助,但如果我的查询由于我不理解的原因而失败,我想使用Elasticsearch validate API

所以对于我的疑问,我会做

curl -XPOST 'localhost:9200/<index>/_validate/query/?explain=true&pretty=true -d {
     "query": {"match_all": {}}
}

它将接受查询并通过验证器运行它,如果它失败,它将显示它检测到的特定错误而没有任何瑕疵。

希望有帮助!