Я использую sphinxsearch + php для полнотекстового поиска в моем приложении.
Мне нужны кнопки «Предыдущая» на странице моего товара. Например, я запускаю запрос «Мужская обувь», он возвращает результат 20 ботинок (ограничение по страницам составляет 20), затем я нажимаю на продукт и открываю страницу продукта, и здесь у меня есть следующий и предыдущий продукты. Но следующий и предыдущий должен работать по конкретному моему поисковому запросу «Мужская обувь». Я сохраняю свой запрос в сеансе, и у меня есть идентификатор продукта. Так, как я могу найти позицию этого продукта и увеличить или уменьшить его, чтобы найти продукты, которые мне нужны.
Можно ли без запроса всей таблицы и циклического поиска, чтобы найти то, что мне нужно.
Хотя вы можете * создать решение для курсора, может быть проще просто использовать смещение.
Страница 1 имеет нулевое смещение, страница 2 — 20, страница 3 — 40 и так далее.
куда вы звоните setLimits
Вы можете установить смещение.
* В основном вам нужен согласованный порядок сортировки, и вам нужно сохранить значение столбца в качестве «курсора» для подкачки страниц и использовать его для фильтрации следующей страницы. При сортировке по весу вы сохраняете вес последнего результата на странице. Тогда для следующей страницы вам нужны только веса, которые ниже этой. (с весами еще сложнее, поскольку может быть много результатов с одним и тем же весом, поэтому вам нужно выполнить сортировку по нескольким столбцам)
Других решений пока нет …