版本: 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) {





