Возвращает ли поиск Azure правильные подсчеты в фасетах при поиске по миллионам элементов

Причина, по которой я спрашиваю, - мы используем Algolia, которая не может возвращать правильные числа для фасетов, когда у нас есть 1-3 миллиона элементов данных (~ 50 ГБ), которые мы ищем. И это было подтверждено техническими специалистами Algolia -> они оптимизируют время извлечения, поэтому предпочитают возвращать меньше данных с неверными подсчетами, но быстро. И они ориентированы в основном на FTS.

Просто хочу подтвердить подход к поиску Azure. Можем ли мы на него положиться? Или нам самим создавать огранки?

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


person zmische    schedule 12.04.2017    source источник


Ответы (1)


Поиск Azure не гарантирует точного подсчета фасетов, если только вы не запросите подсчет, превышающий или равный количеству уникальных значений в фасетируемом поле. Например, если у вас есть поле category с 10 уникальными значениями, это может вернуть неточные значения:

GET /indexes/myindex/docs?facet=category,count:3&api-version=2016-09-01

Хотя это вернет точные подсчеты:

GET /indexes/myindex/docs?facet=category,count:10&api-version=2016-09-01

Однако для полей со многими уникальными значениями использование большого значения для count может отрицательно сказаться на производительности.

Это из официальных документов по аспектам поиска Azure:

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

Существует также ссылка обсуждение на форумах MSDN точности подсчета фасетов, которое может показаться вам интересным.

person Bruce Johnston    schedule 12.04.2017
comment
Спасибо! Именно такого ответа я и ожидал. Мы попытаемся оценить Az Search с нашей стороны, чтобы выяснить задержки производительности для огромного количества пользователей. - person zmische; 13.04.2017
comment
Просто любопытно. Почему точность подсчета так важна для вашего сценария? Вычисление точных подсчетов по огромным объемам данных за очень короткое время — сложная задача, иначе все бы этим занимались. :-) Возможно, вам придется пожертвовать точностью ради производительности, независимо от того, какое поисковое решение вы выберете. - person Bruce Johnston; 13.04.2017
comment
Брюс Джонстон - на сайте магазина вы предпочитаете показывать конечным пользователям правильные подсчеты, например футболки 125; Шляпы - 150, так что когда вы выбираете одну из них (Шляпы), вы получаете 150 шляп на странице, а не 350 или любое другое число. Это просто сбивает с толку пользователя. - person zmische; 17.04.2017