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

版本: 8.2-8.9

简而言之,当 Elasticsearch 查询中的 [fetch_fields] 参数缺少必需的 [field] 参数时,会发生此错误。该参数对于指定响应中应返回哪些字段是必需的。要解决此问题,您可以在查询中提供缺少的 [field] 参数,或者如果您想获取所有字段,可以使用通配符 ‘*'。另外,如果您不需要任何特定字段,可以从查询中删除 [fetch_fields] 参数。

日志上下文 #

日志 “[field] parameter of [fetch_fields] must be provided” 的类名是 LookupRuntimeFieldType.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:

return values.stream().map(v -> {
    if (v instanceof Map m) {
        final String field = (String) m.get(FieldAndFormat.FIELD_FIELD.getPreferredName());
        final String format = (String) m.get(FieldAndFormat.FORMAT_FIELD.getPreferredName());
        if (field == null) {
            throw new MapperParsingException("[field] parameter of [fetch_fields] must be provided");
        }
        return new FieldAndFormat(field; format);
    } else if (v instanceof String s) {
        return new FieldAndFormat(s; null);
    } else {