2016-04-19 13 views
1

Iterating durch den Index mit browse_from und Cursor, ich finde, dass auf einigen Seiten (in der Regel durch 100 teilbar) gibt es eine Warnung zurückgegeben "Der Cursor basiert auf einer alten Version des Indexes."Wie aktualisieren Sie Cursor im Algolia-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"]) 

Das Problem, das ich habe, ist, dass es 1.000 Seiten, von Seite 300 würde es anfangen würde einen alten Cursor, dann wäre es kurz danach zu stoppen, weil es eine Seite, ohne einen Cursor sein würde.

Antwort

3

Der Cursor der Browse-Methode verwendet die objectID und die Position innerhalb des Index, um den Inhalt aufzulisten. Wenn Sie die Indizierung gleichzeitig durchführen, können Sie die aktuelle Position des Cursors im Index verschieben oder löschen.

Wenn die objectID gelöscht wird oder die interne Datenstruktur von der Suchmaschine während des Durchsuchens optimiert wird, setzt die Suchmaschine die Suche in einem eingeschränkten Modus fort und gibt eine Warnmeldung in der Antwort aus. In diesem Fall können einige Datensätze übersprungen werden oder Sie können abhängig von den Indizierungsvorgängen zweimal Datensätze abrufen.

Wenn Sie einen Index genau durchsuchen möchten, müssen Sie ihn in einen temporären Index kopieren und die Browse-Methode für diesen Index ohne Indexierungsvorgänge verwenden.

Verwandte Themen