mysql get seq no_es 查询报seq_no_primary_term字段不存在

现象

今天通过elasticsearch-rest-high-level-client 工具查询es 统计的时候,报了以下的错误

{

"error": {

"root_cause": [

{

"type": "parsing_exception",

"reason": "Unknown key for a VALUE_BOOLEAN in [seq_no_primary_term].",

"line": 67,

"col": 56

}

],

"type": "parsing_exception",

"reason": "Unknown key for a VALUE_BOOLEAN in [seq_no_primary_term].",

"line": 67,

"col": 56

},

"status": 400

}

翻译过来就是,seq_no_primary_term 这个字段不支持。手动通过http调用查询,去掉seq_no_primary_term字段后,发现可以正常查询,可以确认是当前的es版本不支持这个字段的解析导致。

查询参数如下:

"aggregations": {

"topHit": {

"top_hits": {

"from": 0,

"size": 1,

"version": false,

"seq_no_primary_term": true,

"explain": false,

"_source": {

"includes": ["twoLevelCode"],

"excludes": []

}

}

}

}

解决

经过排查,

当前的es版本是 6.2.2。

elasticsearch-rest-high-level-client 的版本为6.7.2

通过查询官方文档,发现seq_no_primary_term 是在es6.7版本添加的,所以会产生上述问题。客户端拼装的es查询条件多个seq_no_primary_term字段,但是服务器不支持解析。官方文档

因为服务版本无法升级,所以将客户端工具降级到6.7版本以下即可,比如v6.6.2

总结

此次问题的更本原因还是客户端查询工具与服务端的版本不一致,导致低版本的服务器不支持高版本的查询语法导致。解决办法也很简单,将两端的版本改为一致即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值