Hi,
I have implemented pagination with Lucene using the searchAfter method
provided by IndexSearcher. In every call, I pass the last ScoreDoc returned
in the previous page.
The problem is that sometimes, the index gets updated between page and page
and occasionally I am getting this exception:
java.lang.IllegalArgumentException: after.doc exceeds the number of
documents in the reader: after.doc=337 limit=337
at
org.apache.lucene.search.IndexSearcher.searchAfter(IndexSearcher.java:434)
I understand that Lucene changes the docs ids every now and then (segment
merges, etc.) and I guess that is why that exception is happening as
searchAfter relies on those docs ids.
How could I improve this pagination mechanism to avoid this exception? Is
there any better way to implement pagination with Lucene?
Thanks,
Iván.