Использование Cusor для следующего и предыдущего перемещения в Apache Solr

1

Я пытаюсь использовать 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?

Теги:
pagination
solr

1 ответ

1

Начиная с solr 5.2, он не содержит никакой previous cursor mark. Если вы хотите предоставить разбивку на страницы в своем приложении со следующими и предыдущими ссылками. Вы можете надежно хранить и использовать значения nextCursorMark возвращаемые solr. Вы можете повторно nextCursorMark значения nextCursorMark, изменяя другие вещи, такие как возвращаемые сохраненные поля или какие поля огранены. Сам параметр cursorMark содержит все необходимое состояние. Не существует состояния на стороне сервера.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню