Можно ли помещать (используя API) и извлекать (используя индексатор) данные в один индекс с помощью поиска Azure?
У меня есть индекс в Azure.
У меня есть таблица отелей в Azure SQL, которая имеет ту же схему, что и копия индекса отелей, найденная в Поиске Azure.
Я перемещаюсь из своей серверной части в таблицу Azure SQL и в поиск Azure при создании / обновлении / удалении.
В сценарии мои данные были перенесены в Azure SQL, но их не удалось отправить в поиск Azure, возможно ли, чтобы моя таблица Azure SQL Hotels была индексатором, так что индексатор мог синхронизировать данные с моим индексом поиска Azure (отели), который не смог быть вытолкнутым из моего бэкэнда?
1 ответ
Да, вы можете смешивать push и pull, а также иметь несколько индексаторов pull, ориентированных на один и тот же индекс. Мы видим, что это часто делается, когда часть данных находится в одном источнике данных, а часть - в другом, где индекс - это точка их схождения, координируемая по их ключу.
Шаблон, который вы описываете, не так распространен, но в целом он должен работать. Вам придется учитывать случаи, когда ваша запись конфликтует с записью индексатора, и убедиться, что записи, которые вы делаете, когда они происходят, в конечном итоге побеждают. Также, если вы пойдете по этому пути, обязательно настройте политику обнаружения изменений (и обнаружения удаления, если вы удаляете строки), чтобы мы индексировали SQL постепенно и не готовили все при каждом запуске.
Альтернативный подход, если вас беспокоит отсутствие записей, - поместить все записи в очередь, а затем извлечь из очереди и выполнить поиск Azure. Таким образом, у вас будет один поток записей вместо двух.