我想对ldap查询的结果进行分页,以便每个页面的每个查询获得50个用户。这里的文档http://ldap3.readthedocs.io/searches.html?highlight=generator表明使用生成器是最简单的方法,但它没有提供有关如何使用它来实现分页的任何细节。当我遍历生成器对象时,它会打印出每个用户条目,即使我指定了' paged_size = 5'在我的搜索查询中。任何人都可以向我解释这里发生了什么?谢谢!
答案 0 :(得分:0)
尝试将paged_criticality参数设置为True。可能是服务器无法执行分页搜索。如果是这种情况并且paged_criticality为True,则搜索将失败而不是返回所有用户。
答案 1 :(得分:0)
这是我使用的类似系统:
# Set up your ldap connection
conn = Connection(*args)
# create a generator
entry_generator = conn.extend.standard.paged_search(
search_base=self.dc, search_filter=query[0],
search_scope=SUBTREE, attributes=self.user_attributes,
paged_size=1, generator=True)
# Then get your results:
results = []
for entry in entry_generator:
total_entries += 1
results.append(entry)
if total_entries % 50 == 0:
# do something with results
否则尝试将page_size设置为50并获得类似的结果。