In version 1.6 is changed the way how the system performs a paginated SQL searches. Full-text search is the same as before: new pages of results are requested to Exalead.
SQL searches in version 1.6 or newer
With this change when the system does a paginated SQL search it loads (server-side) the ids of ALL the objects that match the search conditions, and when getting pages of results it uses this ids.
This new approach is faster: loading a new page of results does not require a query anymore, and even the initial query is faster because there is no separate ‘select count(*)’ to get the total number of results.
The drawback is that if there are changes in the objects being searched the old method – that re-did the search for every page – reflected the changes, whereas the new method does not.
An example: you perform a search that return 60 articles in a specified folder. The first page of results shows the first 20 articles. You wait an hour before you switch to the second page of results. In the mean time, someone else moved the remaining articles to another folder. But, when you switch to the second page of your results, you will still see those articles (although they're now in another folder). But, if you look at the Folder column, the correct info is displayed.
SQL searches in version 1.5 or previous
When the system does a paginated SQL search it does a search every time.