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

版本: 6.8-7.15

简而言之,当 Elasticsearch 监视器(watch)中的 ID 字段包含空白字符时,会出现此错误,而这是不允许的。监视器是一个根据条件满足情况执行操作的功能。要解决此问题,您应确保 ID 字段不包含任何空白字符。您可以通过手动删除空白字符来实现,也可以在应用程序中实现验证检查以防止 ID 字段中出现空白字符。此外,确保操作字段格式正确并且可以被 Elasticsearch 解析。

日志上下文 #

日志 “could not parse action [{}] for watch [{}]. id contains whitespace” 的类名是 ActionRegistry.java。我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景信息的人参考:

XContentParser.Token token;
while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
    if (token == XContentParser.Token.FIELD_NAME) {
        id = parser.currentName();
        if (WatcherUtils.isValidId(id) == false) {
            throw new ElasticsearchParseException("could not parse action [{}] for watch [{}]. id contains whitespace", id, watchId);
        }
    } else if (token == XContentParser.Token.START_OBJECT && id != null) {
        actions.add(ActionWrapper.parse(watchId, id, parser, this, clock, licenseState));
    }
}