如何刷新 algolia 索引中的游标?
How do you refresh cursors in the algolia index?
使用 browse_from
和游标遍历索引,我发现在某些页面上(通常可以被 100 整除)返回警告 "The cursor is based on an old version of the index."
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 页它会开始使用旧光标,然后很快就会停止,因为会有一个页面没有光标。
浏览方式的光标使用objectID
和索引中的位置列出内容。如果同时进行索引操作,可以在索引内移动或删除光标当前位置。
如果objectID
在浏览过程中被删除或者内部数据结构被引擎优化,引擎会以降级模式继续浏览,并且会return警告信息在响应中。在这种情况下,可以跳过某些记录,或者您可以根据索引操作对某些记录进行两次检索。
如果要对索引执行精确浏览,则需要将其复制到临时索引并在该索引上使用浏览方法而不进行索引操作。
使用 browse_from
和游标遍历索引,我发现在某些页面上(通常可以被 100 整除)返回警告 "The cursor is based on an old version of the index."
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 页它会开始使用旧光标,然后很快就会停止,因为会有一个页面没有光标。
浏览方式的光标使用objectID
和索引中的位置列出内容。如果同时进行索引操作,可以在索引内移动或删除光标当前位置。
如果objectID
在浏览过程中被删除或者内部数据结构被引擎优化,引擎会以降级模式继续浏览,并且会return警告信息在响应中。在这种情况下,可以跳过某些记录,或者您可以根据索引操作对某些记录进行两次检索。
如果要对索引执行精确浏览,则需要将其复制到临时索引并在该索引上使用浏览方法而不进行索引操作。