比方说,LDAP模式有一个名为“食物”的属性,它存储人们最喜欢的食物。这是一个多值属性,因此可以为一个人列出许多不同的值。我可以搜索在多值属性中只有*特定值的条目吗?
一个这样的条目的部分转储可能是这样的:
dn: cn=joe,ou=people,dc=company,dc=com
cn: joe
Food: pizza
Food: beer
Food: wings
所以我们可以看到,乔真的很喜欢比萨饼,啤酒和翅膀。
然后我们假设我想让Joe与其他享受披萨,啤酒和/或翅膀的用户相匹配,但不喜欢那些享用比如说抱子甘蓝或菜花的用户。
是否有一个搜索过滤器返回一个或多个“披萨”,“啤酒”和“翅膀”的条目 - 而没有别的 - 在食物属性?
第一部分,寻找任何或所有这三个值,很简单:
(|(Food=pizza)(Food=beer)(Food=wings))
但我怎么告诉它排除其具有比其他三个任意值的条目?
显然,我可以后处理搜索结果并手动抛出任何具有错误值的条目,但我宁愿不这样做,如果我能避免它。
我只是用豆芽和花椰菜作为愚蠢的例子;我不是故意暗示不合格的价值是事先知道的。我想排除包含除“披萨”,“啤酒”或“翅膀”之外的任何食物的条目,无论这些食物是什么。 – 2011-01-27 15:36:05