The last piece of the puzzle is pagination. So let's look into that. By default when you issue an index.search()
call, the first 20 matching documents are returned and the result is actually a search.SearchResult
instance, which has the following properties:
results
: This are the list ofScoreDocument
instances. Each object in this list hasfields
property that we already have seen. The number of items by default are 20 but you can increase that number by supplying alimit
keyword argument tosearch.QueryOptions
.cursor
: This is a pointer to the last document in the results list above. So the next time you executeindex.search()
with the same query and pass this ascursor
keyword argument, the read operation will start from that point. More on this later.number_found
: This is the total number of matching documents. This value is an estimate if the number of matching documents is more thenumber_found_accuracy
. More on that later.
There's a keyword argument to the search.QueryOptions...