使用browse_from
和游标迭代索引,我发现在某些页面上(通常可以被100整除),会返回一个警告"光标基于旧版本索引。"
r = index.browse_from({'hitsPerPage':1000,'attributesToRetrieve':['objectID']})
p = res["nbPages"]
this_r = {"cursor": None} # get first page
for i in range(p):
this_r = index.browse_from({'hitsPerPage':1000,'attributesToRetrieve':['objectID']}, this_r["cursor"])
我遇到的问题是会有1,000页,第300页它将开始使用旧光标,然后它会在不久之后停止,因为会有一个没有光标的页面。
答案 0 :(得分:3)
browse方法的光标使用objectID
和索引中的位置列出内容。如果同时执行索引操作,则可以在索引中移动或删除光标的当前位置。
如果在浏览期间删除了objectID
或引擎优化了内部数据结构,则引擎将继续以降级模式进行浏览,并在响应中返回警告消息。在这种情况下,可以跳过某些记录,或者根据索引操作可以检索两次记录。
如果要对索引执行精确浏览,则需要将其复制到临时索引并对此索引使用browse方法,而不进行索引操作。