版本: 6.8-8.9
简而言之,当 Elasticsearch 中的日期字段未正确配置格式时,会出现此错误。Elasticsearch 需要特定的格式才能正确理解和索引日期字段。要解决此问题,可以在映射中指定日期字段的格式。例如,对于 “2022-01-01” 这样的日期,可以使用 “format”: “yyyy-MM-dd”。或者,如果日期格式不一致,可以使用多种格式,如 “format”: “yyyy-MM-dd||epoch_millis”。这将允许 Elasticsearch 正确解释日期。
日志上下文 #
日志 “[{}] must be set for date fields.” 的类名是 DecayFunctionBuilder.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入理解的人参考:
} else {
origin = ((DateFieldMapper.DateFieldType) dateFieldType).parseToLong(originString, false, null, null, context::nowInMillis);
} if (scaleString == null) {
throw new ElasticsearchParseException("[{}] must be set for date fields.", DecayFunctionBuilder.SCALE);
}
TimeValue val = TimeValue.parseTimeValue(
scaleString,
TimeValue.timeValueHours(24),
DecayFunctionParser.class.getSimpleName() + ".scale"





