Я использую поиск Azure на своем сайте электронной коммерции и теперь хочу реализовать фильтрацию.
Я столкнулся с проблемой с производительностью. У меня есть указатель с продуктами. Каждый продукт относится к категории. Каждая категория может иметь вложенные подкатегории. Моя бизнес-цель - когда покупатель находится на странице категории, мне нужно показывать продукты даже из подкатегорий, поэтому я сомневаюсь, как сохранить это отношение (продукты к категориям) в индексе продуктов лазурного цвета. Я рассматриваю две возможности:
- Я могу хранить только идентификатор категории товаров в поле с типом Edm.Int32. Затем, когда клиент переходит в эту категорию, я запрашиваю свой sql-сервер, чтобы получить все идентификаторы подкатегорий, а затем создавать свой запрос для индексации, как это
categoryId eq 34 или categoryId eq 36 или categoryId eq 37 ...
- Другой способ - создать поле с типом Collection (Edm.String) и сохранить идентификатор категории продуктов и идентификаторы вложенных категорий в этом поле, а затем мой запрос для индексации будет выглядеть следующим образом
categoryIds / any (c: c eq '35')
Так какой путь будет быстрее?