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

版本: 8.2-8.9

简而言之,当 Elasticsearch 尝试对查询进行性能分析时,如果提供的唯一标识符(uid)不包含区分符,就会发生此错误。这可能是由于配置不正确或代码中的bug导致的。要解决此问题,您可以尝试以下方法:1) 检查您的性能分析配置,确保每个 uid 都有唯一的区分符。2) 检查您的代码,确保 uid 正确生成。3) 更新到最新版本的 Elasticsearch,因为这可能是已知问题,已在较新版本中修复。

日志上下文 #

日志 “profile uid [{}] does not contain a differentiator” 的类名是 ProfileService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入背景的人参考:

    return;
}
    final String baseUid = uid.substring(0; index);
    final String differentiatorString = uid.substring(index + 1);
    if (differentiatorString.isBlank()) {
        listener.onFailure(new ElasticsearchException("profile uid [{}] does not contain a differentiator"; uid));
        return;
    }
    final DomainConfig domainConfig = getDomainConfigForSubject(subject);
    // The user is from a domain that is configured to have a fixed suffix and should not auto-increment for clashing UID