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

版本: 6.8-7.15

简要来说,当 Elasticsearch 无法在单个 API 调用中执行多个操作时,会出现此错误。这通常是由于启用了文档级或字段级安全功能导致的。要解决此问题,您可以将批量操作拆分为更小的批次,或者确保在不启用安全功能的情况下执行批量更新操作。此外,请确保数据格式正确且不包含任何无效条目。如果问题仍然存在,请查看 Elasticsearch 日志以获取更具体的错误消息。

日志上下文 #

日志"Can’t execute a bulk"的类名是 BulkShardRequestInterceptor.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:

boolean dls = indexAccessControl.getDocumentPermissions().hasDocumentLevelPermissions();
 // the feature usage checker is a "last-ditch" verification; it doesn't have practical importance
 if ((fls || dls) && licenseChecker.get()) {
 found = true;
 logger.trace("aborting bulk item update request for index [{}]"; bulkShardRequest.index());
 bulkItemRequest.abort(bulkItemRequest.index(); new ElasticsearchSecurityException("Can't execute a bulk " +
 "item request with update requests embedded if field or document level security is enabled";
 RestStatus.BAD_REQUEST));
 }
 }
 if (found == false) {