Azure Search - Исследование стоимости операции MergeOrUpload? - PullRequest
0 голосов
/ 28 мая 2020

Я написал две разные функции для заполнения одного и того же документа, но с разными атрибутами. Одна из функций обновляет атрибуты A1, A2, A3 документа X, а другая функция обновляет атрибуты A4, A5 того же документа X с учетом идентификатора документа. Они используют операцию MergeOrUpload для обновления документа.

Пытаюсь оценить стоимость операции MergeOrUpload. Как это работает на бэкэнде и читает ли он весь документ, а затем объединяет новые значения атрибутов и возвращает документ в индекс или что-то еще? Насколько это рентабельно?

1 Ответ

0 голосов
/ 28 мая 2020

Было бы более эффективно включить все атрибуты в один вызов, чем сначала создавать документ с A1, A2 и A3, а затем отправлять вызов mergeOrUpdate для добавления A4, A5 и A6. В бэкэнде все индексные файлы доступны только для чтения, чтобы облегчить распределенный и параллельный характер службы, поэтому, когда вы обновляете документ, нам фактически нужно сделать копию исходного документа, который включает недавно обновленные атрибуты.

Лучше всего, чтобы получить точную стоимость, было бы провести собственное тестирование с использованием ваших собственных данных и шаблона использования, однако вполне вероятно, что вы обнаружите, что создание документа со всеми атрибутами является наиболее эффективным подходом.

...