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
总结
此次问题的更本原因还是客户端查询工具与服务端的版本不一致,导致低版本的服务器不支持高版本的查询语法导致。解决办法也很简单,将两端的版本改为一致即可。
以上是 es查询报seq_no_primary_term字段不存在 的全部内容, 来源链接: utcz.com/z/518096.html