专注于 JetBrains IDEA 全家桶,永久激活,教程
持续更新 PyCharm,IDEA,WebStorm,PhpStorm,DataGrip,RubyMine,CLion,AppCode 永久激活教程

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": []
            }
        }
    }
}

解决

经过排查,

1、 当前的es版本是 6.2.2。
2、 elasticsearch-rest-high-level-client 的版本为6.7.2
3、 通过查询官方文档,发现seq_no_primary_term 是在es6.7版本添加的,所以会产生上述问题。客户端拼装的es查询条件多个seq_no_primary_term字段,但是服务器不支持解析。官方文档
4、 因为服务版本无法升级,所以将客户端工具降级到6.7版本以下即可,比如v6.6.2

总结

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

文章永久链接:https://tech.souyunku.com/25033

未经允许不得转载:搜云库技术团队 » es 查询报seq_no_primary_term字段不存在

JetBrains 全家桶,激活、破解、教程

提供 JetBrains 全家桶激活码、注册码、破解补丁下载及详细激活教程,支持 IntelliJ IDEA、PyCharm、WebStorm 等工具的永久激活。无论是破解教程,还是最新激活码,均可免费获得,帮助开发者解决常见激活问题,确保轻松破解并快速使用 JetBrains 软件。获取免费的破解补丁和激活码,快速解决激活难题,全面覆盖 2024/2025 版本!

联系我们联系我们