首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是LDAP索引以及它们是如何工作的?

什么是LDAP索引以及它们是如何工作的?
EN

Stack Overflow用户
提问于 2016-01-12 12:20:37
回答 3查看 4.8K关注 0票数 0

我目前正忙于学习LDAP。我对索引有问题。我知道他们是用来提高业绩的。但是,我无法理解LDAP中索引的工作原理。例如,作为LDAP服务器,我正在使用OpenDJ。在这里,我可以看到属性sn (姓氏)确实有5种不同的索引类型,它们是近似的、相等的、有序的、存在的和子字符串的。但是,只检查排序。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-05-04 23:30:20

我无法理解LDAP中索引的工作原理。

与数据库中的索引相同。以加快查询和更新。可以为任何属性提供索引,但只能对搜索中具有功能的属性进行索引。您可以对LDAP数据库进行比DBMS更随意的索引,因为假定的读:写比率要高得多,通常是9:1或更多,而对于RDBMS则是3:1,因此在插入和更新上索引的成本相对要低得多。

例如,作为LDAP服务器,我正在使用OpenDJ。在这里,我可以看到属性sn (姓氏)确实有5种不同的索引类型,它们是近似的、相等的、有序的、存在的和子字符串的。

它们对应于您可以在LDAP搜索过滤器中使用的不同运算符:

代码语言:javascript
复制
  filter     = "(" filtercomp ")"
    filtercomp = and / or / not / item
    and        = "&" filterlist
    or         = "|" filterlist
    not        = "!" filter
    filterlist = 1*filter
    item       = simple / present / substring / extensible
    simple     = attr filtertype value
    filtertype = equal / approx / greater / less
    equal      = "="
    approx     = "~="
    greater    = ">="
    less       = "<="
    extensible = attr [":dn"] [":" matchingrule] ":=" value
                 / [":dn"] ":" matchingrule ":=" value
    present    = attr "=*"
    substring  = attr "=" [initial] any [final]
    initial    = value
    any        = "*" *(value "*")
    final      = value
    attr       = AttributeDescription from Section 4.1.5 of [1]
    matchingrule = MatchingRuleId from Section 4.1.9 of [1]
    value      = AttributeValue from Section 4.1.6 of [1]

但是,只检查排序。

您的意思是在某些管理GUI中只选择此选项吗?如果是这样,则只为该属性维护常规排序索引。这可以用于所有运营商,但据称速度较慢。就我个人而言,我从未理解LDAP实现者为什么认为他们在数据库业务中,不使用标准数据库,并坚持提供他们自己的数据库。

票数 4
EN

Stack Overflow用户

发布于 2017-03-06 10:49:17

当客户端请求目录搜索操作时,客户端向服务器发送一个过滤器表达式,例如(&(uid=jensen)(l=Stavanger))。然后,服务器使用适用的索引查找属性值可能与搜索相匹配的条目。如果不适用索引,则服务器可能必须遍历所有条目以查找候选匹配项。

对大型目录来说,查看所有条目都是资源密集型的。因此,默认情况下,允许用户请求不存在适用索引的搜索的取消索引搜索特权保留给目录根用户。

来源

票数 2
EN

Stack Overflow用户

发布于 2016-05-04 21:07:22

LDAP索引可以看作是数据库索引。索引正在提高复杂LDAP搜索请求的性能。希望这能帮上忙。

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34743541

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档