Я пытаюсь использовать Cursors
(документ), чтобы сделать "Next" и "Previous" pagination. Мне странно, что в возвращенных данных нет такой вещи, как prevCursorMark
а не nextCursorMark
. Это делает реализацию следующей и предыдущей разбивки на страницы довольно сложной.
Я придумал идею сохранения предыдущего запроса nextCursorMark
в качестве указателя предыдущей страницы. Однако я чувствовал, что это будет не так надежно, как просто наличие prevCursorMark
.
Пример кода с расширением PHP Solr
$query_response = $client->query($solrQuery);
$data = $query_response->getResponse();
$nextCursorMark = $data['nextCursorMark'];
$prevCursorMark = isset($_GET['nextResult'])?
htmlspecialchars($_GET['nextResult']):'*';
$pager = "<a href='index?1=1&nextResult=$prevCursorMark' class='page5 no_ajax'>Prev</a>
<a href='index?1=1&nextResult=$nextCursorMark' class='page5 no_ajax'>Next</a>";
Итак, вот мой вопрос: существуют ли Cursors
в Solr
для предвключительной метки? Можно ли сделать следующую и предыдущую разбивку на страницы с помощью Cursors
?
Начиная с solr 5.2, он не содержит никакой previous cursor mark
. Если вы хотите предоставить разбивку на страницы в своем приложении со следующими и предыдущими ссылками. Вы можете надежно хранить и использовать значения nextCursorMark
возвращаемые solr. Вы можете повторно nextCursorMark
значения nextCursorMark
, изменяя другие вещи, такие как возвращаемые сохраненные поля или какие поля огранены. Сам параметр cursorMark содержит все необходимое состояние. Не существует состояния на стороне сервера.