搜索

3.3. 使用复合 LDAP 搜索过滤器

download PDF

您可以使用在前缀标记中表示的布尔值运算符组合多个 LDAP 搜索过滤器组件,如下所示:

(<boolean-operator>(filter)(filter)(filter)...)

您可以使用以下布尔值运算符:

Operator符号描述

Ampersand (&)

所有指定的过滤器都必须为 true,才能为 true。例如,(& (filter) (filter) (filter)…​)

或者

垂直栏(|)

至少一个指定的过滤器必须为 true,声明必须为 true。例如,(|(filter) (filter) (filter)…​)

感叹号(!)

对于该语句,指定语句不能为 true。只有一个过滤器会受到 not 运算符的影响。例如,(! (filter))

搜索操作会按照以下顺序评估布尔值表达式:

  • Innerest toest parenthetical 表达式最先。
  • 然后,服务器会更改顺序,以首先评估最严格的表达式。

当复合搜索过滤器组合到已完成的表达式中时,复合搜索过滤器最有用,例如:

(<boolean-operator>(filter)((<boolean-operator>(filter)(filter))))

您可以将复合过滤器与其他类型的搜索(大约、子字符串及其他运算符)相结合,来获取详细的结果。以下示例过滤器返回所有具有机构单元(ou)的条目,其 description 属性不包含子字符串 X.500

(&(ou=Marketing)(!(description=*X.500*)))

另外,您可以扩展过滤器来返回将 管理器 设置为 exampledemo 的条目:

(&(ou=Marketing)(!(description=*X.500*))(|(manager=cn=example,ou=Marketing,dc=example,dc=com)(manager=cn=demo,ou=Marketing,dc=example,dc=com)))

以下示例过滤器返回没有代表人的所有条目:

(!(objectClass=person))

以下过滤器返回没有代表人员以及通用名称(cn)与 printer3b 类似的所有条目:

(&(!(objectClass=person))(cn~=printer3b))
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.