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

版本: 6.8-8.9

简而言之,当 Elasticsearch 尝试解析文档中的电子邮件字段时发现其为空,就会出现此错误。这可能是由于数据输入错误或数据摄取过程中的缺陷导致的。要解决此问题,您可以确保在索引文档之前电子邮件字段不为空。或者,您可以修改 Elasticsearch 映射以允许电子邮件字段接受 null 值。最后,您可以在应用程序代码中处理此错误,当电子邮件字段为空时设置一个默认值。

日志上下文 #


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

    } else if (parser.currentToken() == XContentParser.Token.START_OBJECT) {
        while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) {
            if (token == XContentParser.Token.FIELD_NAME) {
                currentFieldName = parser.currentName();
            } else if (currentFieldName == null) {
                throw new ElasticsearchParseException("could not parse email. empty [{}] field", bodyField);
            } else if (Email.Field.BODY_TEXT.match(currentFieldName, parser.getDeprecationHandler())) {
                email.textBody(parser.text());
            } else if (Email.Field.BODY_HTML.match(currentFieldName, parser.getDeprecationHandler())) {
                email.htmlBody(parser.text());
            } else {