我正在尝试找到一种方法来处理Elasticsearch查询解析异常,这种方式不会像对待机器那样对待我。我想成为一个人,这意味着当我的查询中出现语法错误时,我想要一条信息丰富的简明消息。
是否有现成的服务/宝石/技术可以实现这一目标?也许它是一个解析器,你喂它ES乱码查询解析异常消息,它给你回来的东西(更多)有用吗?或者它可能是一个ES插件,只是简单地改变了解析异常的呈现方式。
我最想要的特征 -
from[-1],size[-1]: Parse Failure [Expected [START_OBJECT] under [and], but got a [START_ARRAY] in [filter]]]
中那样模糊地引导我注意帮助我调试,但肯定它可以告诉我发生语法错误的行或字符){
,(
和;
之类的机器友好,并使用了正确的英语而不是行话。非常感谢您帮助减少这些例外所带来的认知负担。
答案 0 :(得分:0)
我不确定这是否有帮助,但如果我的查询由于我不理解的原因而失败,我想使用Elasticsearch validate API。
所以对于我的疑问,我会做
curl -XPOST 'localhost:9200/<index>/_validate/query/?explain=true&pretty=true -d {
"query": {"match_all": {}}
}
它将接受查询并通过验证器运行它,如果它失败,它将显示它检测到的特定错误而没有任何瑕疵。
希望有帮助!