Разбивка базы данных Cloudant/Couch в API поиска — как пропустить n количество записей

Я создаю типичную разбивку на страницы, которая позволяет пользователю щелкнуть определенный номер страницы и просмотреть результаты (аналогично просмотру результатов поиска Google). Я использую для этого Cloudant Search API. API облачного поиска предоставляет возможность ограничения, но не позволяет пропустить. Как я могу пропустить n результатов, если пользователь находится на странице 1 и нажимает на страницу 4?

Я вижу, что пагинация реализована с помощью закладок. Значит ли это, что мне нужно сначала получить закладку для страницы 4, отправив 3 дополнительных запроса один за другим в API поиска?


person Sethunath K M    schedule 27.08.2017    source источник


Ответы (1)


Есть несколько разных способов справиться с этим - один из них вы уже предложили, он просто извлекает страницы по мере необходимости для получения закладок. Я не уверен, что есть много альтернатив для результатов поиска, где мы не можем предварительно вычислить результаты.

Другая альтернатива, и это немного зависит от деталей того, что вы пытаетесь сделать, — это создать представление, содержащее данные, и использовать ключи, чтобы сузить представление до нужных вам результатов. Выходные данные представления поддерживают использование limit и skip, что позволит вам реализовать нумерацию страниц.

В документации также есть хороший пример разбивки на страницы: http://docs.couchdb.org/en/2.1.0/ddocs/views/pagination.html

person Lorna Mitchell    schedule 29.08.2017
comment
Спасибо. Я буду экспериментировать с представлениями, но я не уверен, что представление — это то, что мне следует использовать, потому что я реализую поиск - person Sethunath K M; 30.08.2017