hi, the boundaries of pagination work on the limits of the Lucene query, but when loading the entities it might happen to then discover that one or more of them are actually missing in the database: in this case it's silently skipped, as the database is supposed to be the one source to trust.
This might happen occasionally if you have the indexing configured "async", as the changes on the index could be visibile with some delay, but shouldn't happen often nor consistently.
If you experience consistent un-matches, most likely your index got out of synch from the database (restored a DB backup? run native SQL statements?), you can fix it by re-indexing.
Quote:
I get back 97 results, even though a call to fullTextQuery.getResultSize() gives 125. If I set maxResults to 10, I get back 9 results.
this still is not totally right; are you speaking about the same query? if there are actually only 97 results out of 125, it should be fine to see just 97 in the case of setMaxResults(100), but you should see 10 in case of setMaxResults(10).