Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Пара вопросов про работу "под капотом":

00 голосов
1
Допустим, у нас есть элементы инфоблока со св-вами: направление (строка), тип отдыха(список) , тип размещения (список) и цена (число). Есть умный фильтр.

При этом направление идет первым элементом фильтра

1 вопрос: как вообще происходит фильтрация? Ну, то есть, попеременно ли происходит выборка элементов - сначала по направлению, а уже потом по выборке направления идет фильтрация по остальным параметрам (тоже по очереди) или сразу всем скопом?

 

2 вопрос: например, пользователь получил список элементов и изменил все параметры фильтра кроме направления - будет ли новый запрос в БД или выборка по направлению сохраняется в кеше и работа происходит только с ней или же будет новый запрос к БД?
спросил 26 Дек, 16 от Lifesaver (270 баллов)

1 Ответ

00 голосов
 
Лучший ответ
Вопрос интересный..

Если посмотреть на код catalog.smart.filter, то похоже, что строится запрос к таблице с фасетами (под фильтруемые свойства предполагаем что фасетные индексы уже созданы), с учётом всех фильтров. А полученная выборка ID элементов уже идёт дальше для вывода.

Опять же, если я правильно понимаю логику работы, - то отфильтрованные результаты не кешируются битриксом -- это просто очень "дорого", так как комбинаций фильтров очень много. Но! на некоторое время запрос и ответ из БД кешируется в самом MySql (хотя тут тоже вопрос размера ответа и настроек БД).
ответил 29 Дек, 16 от root (25,590 баллов)
выбран 06 Янв, 17 от Lifesaver

Похожие вопросы

0 голосов
2 ответов
спросил 24 Март, 14 от Wiggy (100 баллов)
0 голосов
3 ответов
спросил 27 Март, 14 от Kania (5,180 баллов)
0 голосов
2 ответов
0 голосов
5 ответов