Разбивка на страницы после переиндексации в Поиске Azure

Я новичок в службе поиска Azure и не уверен, что понял одну важную вещь:

Давайте представим ситуацию, когда я как клиент прокручиваю результаты своего поискового запроса:

"Новый Y". У меня 1000 элементов, на каждой странице их по 10. Но во время моей прокрутки была запущена операция переиндексации, и некоторые элементы изменили свое положение относительно новых обновлений в источнике данных (Таблица Azure).

Буду ли я видеть следующие страницы во время прокрутки после переиндексации с возможно некоторыми дублированными данными или это все еще будет старый «снимок» данных, которые я прокручивал раньше?


person matterai    schedule 04.10.2016    source источник


Ответы (1)


Вы увидите изменения по мере выполнения последующих запросов. Для поиска Azure каждый запрос является независимым и представляет собой новый поиск (помимо кэширования), который для сценариев разбиения на страницы просто имеет другой номер «пропуска».

Это означает, что если ваши данные меняются, вы можете увидеть элемент более одного раза (если он перемещается по страницам из-за изменений) или даже пропустить один (если он перемещается со страницы, которую вы еще не видели, на страницу, которую вы уже видели) .

Невозможно получить строго согласованное представление результатов поиска за пределами одного результата. Если вам нужно приблизиться к этому поведению, вы можете запросить страницу большего размера (используя «верх»), кэшировать результаты и представить их по частям. Мы обнаружили, что на практике это редко требуется для большинства сценариев поиска, но если поиск поддерживает часть приложения, требующую согласованности, вам может потребоваться что-то в этом роде.

person Pablo Castro    schedule 04.10.2016
comment
Похоже на плохой дизайн веб-API. Я имею в виду, что данные подкачки с параметрами $ top / $ skip всегда будут вызывать проблемы с дублированием элементов. Пагинация на основе курсора решает такую ​​проблему. Вот хорошая статья об этом vermorel.com/journal/2015/5/8/. Интересно, почему поиск Azure до сих пор не обеспечивает надежного способа разбиения по страницам. - person ebashmakov; 11.01.2017