版本: 6.8-7.15
简要来说,当 Elasticsearch 无法解析为监视器(watch)指定的条件时,就会出现此错误。这可能是由于语法不正确、参数缺失或参数无效造成的。要解决此问题,您应该首先验证条件的语法。确保所有必需的参数都已包含且格式正确。如果错误仍然存在,请检查 Elasticsearch 日志以获取有关解析错误的更详细信息。如果监视器插件已过时或损坏,您可能还需要更新或重新安装该插件。
日志上下文 #
日志 “could not parse [{}] condition for watch [{}].” 的类名是 ArrayCompareCondition.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
if (token == XContentParser.Token.FIELD_NAME) {
if (parser.currentName().equals("value")) {
token = parser.nextToken();
if (op.supportsStructures() == false && token.isValue() == false
&& token != XContentParser.Token.VALUE_NULL) {
throw new ElasticsearchParseException("could not parse [{}] condition for watch [{}]. " +
"compared value for [{}] with operation [{}] must either be a numeric, string, " +
"boolean or null value, but found [{}] instead", TYPE, watchId, path,
op.name().toLowerCase(Locale.ROOT), token);
}
value = XContentUtils.readValue(parser, token);





