【问题标题】:LDAP query returns more results with a longer wildcardLDAP 查询返回更多结果,通配符更长
【发布时间】:2015-01-29 02:38:41
【问题描述】:

LDAP 通配符搜索如何工作?我似乎严重错过了一些东西。

我有一个类似的查询

(|(cn=john*)(sn=john*)(givenName=john*))

返回 30 个结果和一个类似于

(|(cn=johns*)(sn=johns*)(givenName=johns*))

返回 162 个结果。输入的唯一区别是第二个在通配符之前有 more 个字母。

两个查询都成功,没有错误,较小的结果数是较大数的子集;输出端的唯一区别是第二个查询返回的结果更多。

【问题讨论】:

  • 您对此100% 确定吗?当然应该反过来。这 30 个结果是 162 个结果的真子集吗?
  • 你对所有这些属性都有子字符串索引吗?
  • EJP,是的,我对正在发生的事情没有任何理论。这 30 个结果一个适当的子集。戴夫,我不知道索引;我们现在正试图检查。 (是的,不同的组织。)

标签: active-directory ldap


【解决方案1】:

您的查询是完全完成还是返回 X 结果然后出现某种错误?

我可以想象这样一种情况,即不维护较短值“john*”的索引,因为“john”太常见并且超出了索引的限制。在这种情况下,LDAP 服务器可能会在达到另一个限制之前回退到遍历目录中的所有条目 - 在服务器端可能会遍历多少条目。不幸的是,只找到并返回了那么多匹配的条目。但是...如果是这种情况,最后应该有某种错误/警告/异常。

对于较长的值“johns*”,索引可能就位,因为此类值的条目较少,因此服务器可以依赖它来返回完整的结果集。

【讨论】:

  • 我已经更新了问题,但查询完成并且不返回错误。不幸的是,我没有关于 Active Directory 服务器的索引或配置的任何信息。
猜你喜欢
  • 2019-07-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-04
  • 1970-01-01
  • 1970-01-01
  • 2015-05-29
  • 1970-01-01
相关资源
最近更新 更多