Могу ли я запросить его сразу после загрузки документа в Azure Search? - PullRequest
0 голосов
/ 07 мая 2019

1) Предположим, я использую API поиска Azure для загрузки нового документа:

POST /indexes/[index name]/docs/index?api-version=[api-version]  

2) Я получаю ответ с HTTP-кодом 201 (документ был успешно создан)

3) Я снова использую API для поиска во вновь загруженном документе

Могу ли я быть на 100% уверен, что получу документ в результатах?Или может быть задержка в процессе индексации?

1 Ответ

2 голосов
/ 07 мая 2019

Нет, не гарантируется, что документ будет возвращен в запросе. Обычная задержка составляет порядка секунд, но в зависимости от общей загрузки системы это может занять больше времени. Вам нужно будет запустить тесты на вашем сервисе, чтобы определить типичную задержку в вашем приложении.

Поиск Azure предлагает возможную согласованность , что означает, что индекс будет согласован в будущем, но именно тогда, когда это не гарантировано.

Даже опроса для документа, пока он не появится в результате запроса, недостаточно, чтобы всегда гарантировать согласованность для индексов с несколькими репликами, поскольку запросы могут чередоваться с документами, сливающимися в реплики индекса. Например

  1. Реплики A и B соответствуют
  2. Клиент загружает новый документ
  3. Реплика А получает запрос на загрузку
  4. Реплика A обрабатывает запрос на загрузку и готова вернуть новый документ в результатах запроса
  5. Клиент запрашивает новый документ, который обслуживается репликой А, и получает новый документ в результате
  6. Клиент снова запрашивает новый документ, который на этот раз обслуживается репликой B, и не получает новый документ в результате
  7. Новый документ обработан Репликой B
  8. Обе реплики теперь снова согласованы
...