2015-06-21 61 views
0

我將從一個100k實體列表中搜索一個用戶,但它似乎需要超過15分鐘的持續時間,並且我必須搜索33000個用戶,是否有一種最佳方式可以在5分鐘內返回結果?如何減少ldap搜索時間?

+1

告訴我們你目前是如何做到的。 –

+0

ldap_con.search_s(base_dn,ldap.SCOPE_ONELEVEL,filter)其中filter =「(&(objectClass = *)(cn = *))」 – user2753523

+0

我們是否允許在basedn中使用正則表達式? – user2753523

回答

1

奇怪的過濾器。幾乎肯定不是你真正想要的。

目前你正在尋找任何objectClass甚至有cn屬性的任何條目,並且可能你會通過成千上萬個返回的條目找到你想要的條目。

相反,你應該直接搜索你想要的一個條目,同時指定一個具體的objectClass,例如inetOrgPerson,以及一個具體的cn,你正在尋找的用戶是cn

您必須確保objectClasscn都已編入索引。

+0

即使我們這樣做,是否可以在5分鐘內完成上述搜索? – user2753523

+0

只要您提供我提到的索引,這將需要幾秒鐘的時間。 – EJP

+0

如果對cn進行索引,則對於任何現代LDAP實現,搜索應該少於1/2秒。 – jwilleke