--- title: "字段 name 的属性值不能为 null - 如何解决此 Elasticsearch 异常" date: 2026-01-20 lastmod: 2026-01-20 description: "Elasticsearch 字段不能赋值为 null,需要使用默认值或确保字段在索引前始终有值" tags: ["字段映射", "null值处理", "ConstantKeywordFieldMapper"] summary: "版本: 7.7-7.9 简要来说,当 Elasticsearch 中的字段被赋值为 null 时会发生此错误,这是不允许的。Elasticsearch 要求所有字段都必须有值。要解决此问题,您可以在字段为 null 时为其分配默认值,或者确保字段在索引前始终有值。另外,您可以使用 “ignore_malformed” 选项来忽略此类错误,但这可能会导致索引中的数据丢失或不正确。 日志上下文 # 日志 “Property [value] of field [” + name + “] can’t be [null].” 的类名是 ConstantKeywordFieldMapper.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: public Mapper.Builderparse(String name; Mapnode; ParserContext parserContext) throws MapperParsingException { Object value = null; if (node.containsKey("value")) { value = node.remove("value"); if (value == null) { throw new MapperParsingException("Property [value] of field [" + name + "] can't be [null]." --- > **版本:** 7.7-7.9 简要来说,当 Elasticsearch 中的字段被赋值为 null 时会发生此错误,这是不允许的。Elasticsearch 要求所有字段都必须有值。要解决此问题,您可以在字段为 null 时为其分配默认值,或者确保字段在索引前始终有值。另外,您可以使用 "ignore_malformed" 选项来忽略此类错误,但这可能会导致索引中的数据丢失或不正确。 日志上下文 ----------- 日志 "Property [value] of field [" + name + "] can't be [null]." 的类名是 [ConstantKeywordFieldMapper.java.](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java public Mapper.Builderparse(String name; Mapnode; ParserContext parserContext) throws MapperParsingException { Object value = null; if (node.containsKey("value")) { value = node.remove("value"); if (value == null) { throw new MapperParsingException("Property [value] of field [" + name + "] can't be [null]."); } if (value instanceof Number == false && value instanceof CharSequence == false) { throw new MapperParsingException("Property [value] of field [" + name + "] must be a number or a string; but got [" + value + "]"); } ```