📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-7.15

简要来说,当 Elasticsearch 期望字符串值或对象结束时却收到了不同的数据类型或意外值,就会发生此错误。这通常是由于请求体中的数据格式或结构不正确导致的。要解决此问题,您可以:1) 检查 JSON 结构并确保它符合预期格式;2) 验证所传递值的数据类型;3) 确保 JSON 中没有尾随逗号或缺少括号;4) 如果您使用脚本或工具生成请求,请验证其输出。

日志上下文 #

日志 “Expected [” + XContentParser.Token.VALUE_STRING + “] or [” 的类名是 SearchAfterBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:

    } else if (token == XContentParser.Token.VALUE_BOOLEAN) {
        values.add(parser.booleanValue());
    } else if (token == XContentParser.Token.VALUE_NULL) {
        values.add(null);
    } else {
        throw new ParsingException(parser.getTokenLocation(), "Expected [" + XContentParser.Token.VALUE_STRING + "] or ["
        + XContentParser.Token.VALUE_NUMBER + "] or [" + XContentParser.Token.VALUE_BOOLEAN + "] or ["
        + XContentParser.Token.VALUE_NULL + "] but found [" + token + "] inside search_after.");
    }
}