Здесь есть похожий вопрос Лучший способ реализовать <следующий>, <предыдущая> ссылки на элементы из списка поиска
Но я не удовлетворен этим ответом, и мой случай немного отличается, и я хочу узнать лучший способ чаще.
У меня есть страница поиска, скажем, в поисках стихов. (в настоящее время данные взяты из MySQL, но я планирую проиндексировать их в Apache Solr)
Каждый результат на странице результатов поиска (скажем, / search? Keyword = flower&author = john) — это ссылка, по которой можно щелкнуть, и она будет перенаправлена на страницу сведений о стихотворении.
(скажем, / poem / 1234 / Это лучшее из стихотворений)
Теперь мне нужны ссылки «предыдущая» и «следующая» на странице сведений, если эта страница нажата на странице результатов поиска. и он использует тот же порядок результатов поиска.
Я могу подумать о том, чтобы добавить полные параметры поиска на страницу сведений, поэтому «страница сведений с разбиением на страницы» на самом деле является результатами поиска, но perpage = 1.
Но я должен делать полный запрос каждый раз, показывая страницу с описанием стихотворения.
Интересно, есть ли лучший способ?
Спасибо и извиняюсь за мой плохой английский.
Что касается Solr, вы можете использовать DeepPaging, посмотрите здесь:
http://heliosearch.org/solr/paging-and-deep-paging/
Вы получаете ‘cursorMark’ от Solr, когда вы используете DeepPaging, который работает
как своего рода закладка для результатов вашего следующего запроса.
Вам придется запросить, но вы будете оставаться в том же наборе результатов, используя этот флаг,
поэтому, когда вы делаете это только для следующего документа, вам нужно будет получить только одну строку,
помните свое текущее положение, с чего начать,
сохранить метку курсора и повторить все это для следующего.
Запомнив предыдущие метки курсора, вы также можете вернуться назад.
С Уважением,
Markus
Вы должны получить стихотворение из БД для деталей. Но остальные параметры могут быть переданы со страницы списка, в том числе список (массив) идентификаторов стихотворений, извлеченных в выгружаемый список. Вы можете использовать это, пока не достигнете конца списка, чтобы получить список следующей страницы.
Вы также можете рассмотреть варианты кэширования, доступные на сервере. Расширение APC распространено на PHP.