--- title: "无法在启用字段或文档级安全时执行更新请求 - 如何解决此Elasticsearch异常" date: 2026-02-21 lastmod: 2026-02-21 description: "当Elasticsearch启用字段或文档级安全时尝试执行更新请求会导致此错误。本文介绍了解决此问题的方法,包括禁用安全设置、修改安全配置或使用重建索引操作。" tags: ["Elasticsearch异常", "更新请求", "字段级安全", "文档级安全", "安全配置"] summary: " 版本: 6.8-7.15 简而言之,当在Elasticsearch上启用字段级或文档级安全时尝试执行更新请求,就会出现此错误。此安全功能限制对某些字段或文档的访问,因此更新请求失败。要解决此问题,如果字段级或文档级安全不是必需的,可以将其禁用,或者修改安全设置以允许对特定字段或文档执行更新操作。另一种方法是使用更新后的数据执行重建索引操作,从而绕过更新请求的需求。 日志上下文 # 日志 “Can’t execute an update request if field or document level security” 的类名是 UpdateRequestInterceptor.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: @Override void disableFeatures(IndicesRequest indicesRequest; MapindicesAccessControlByIndex; ActionListenerlistener) { listener.onFailure(new ElasticsearchSecurityException("Can't execute an update request if field or document level security " + "is enabled"; RestStatus.BAD_REQUEST)); } @Override String[] requestIndices(IndicesRequest indicesRequest) { " --- > **版本:** 6.8-7.15 简而言之,当在Elasticsearch上启用字段级或文档级安全时尝试执行更新请求,就会出现此错误。此安全功能限制对某些字段或文档的访问,因此更新请求失败。要解决此问题,如果字段级或文档级安全不是必需的,可以将其禁用,或者修改安全设置以允许对特定字段或文档执行更新操作。另一种方法是使用更新后的数据执行重建索引操作,从而绕过更新请求的需求。 ## 日志上下文 ----------- 日志 "Can't execute an update request if field or document level security" 的类名是 [UpdateRequestInterceptor.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java @Override void disableFeatures(IndicesRequest indicesRequest; MapindicesAccessControlByIndex; ActionListenerlistener) { listener.onFailure(new ElasticsearchSecurityException("Can't execute an update request if field or document level security " + "is enabled"; RestStatus.BAD_REQUEST)); } @Override String[] requestIndices(IndicesRequest indicesRequest) { ```