Как реализовать фасетный поиск?

Здравствуйте.
Расскажите базовые вещи про фасетный поиск.
Какой должна быть структура базы данных, какова нагрузка на БД, каковы варианты ускорения поиска, чтобы снизить нагрузку с БД?
  • Вопрос задан
  • 11914 просмотров
Пригласить эксперта
Ответы на вопрос 3
nikel303
@nikel303
1. Берете характеристики товаров, которые могу участвовать в фильтре, получаете для каждой характеристики все варианты значений для текущей выборки товаров.
2. Выводите в форму фильтра, значения сгруппированные по характеристикам с инпутом-checkbox.
3. Пользователь ставит галки, отправляет форму.
4. Формируете критерий для выборки из базы на основе запроса.
5. Переходим к пункту 1.

Для ускорения: индексы, кэш, sphinx
Ответ написан
dizballanze
@dizballanze
Software developer at Yandex
Советую использовать ElasticSearch, там фасетный поиск из коробки поддерживается.
Ответ написан
@stascer
web-программист
Используйте sphinx и MVA атрибут для фильтрации по набору характеристик - это ускорит поиск и минимизирует нагрузку на сервер. Подробнее об этом можете прочитать здесь.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы