Инструкция по созданию фасетной навигации с логикой работы как в большинстве интернет магазинов.
Предполагается что Search API уже настроен и создан Views по индексу.
-
Включаем модуль Search facets из состава Search API.
-
Добавляем в индекс поля, по которым будет осуществляться фасетная навигация. Например тип материала и теги:
-
В табе Facets включаем нужные фасеты:
-
Делаем переиндексацию.
-
На странице управления блоками переносим блоки фасетов в нужный регион:
-
Открываем страницу представления по поисковому индексу и получаем:
-
Переходим в настройки отображения блока с фасетами:
-
В настройках выбираем виджет Links with checkboxes, меняем оператор на OR и изменяем опцию Minimum facet count на 0, чтобы пустые фильтры не пропадали:
-
Аналогично настраиваем другие блоки.
Profit.
Видео со всеми шагами, включая настройку Search API.
P.S: Если в качестве бакэнда используется search_api_db и хочется чтобы блоки с фасетами не пропадали при отсутствии результатов — https://www.drupal.org/node/2219897#comment-8585141
Комментарии
Дорогой автор!
Уже который раз ищу информацию по друпалу, и каждый раз наконец нахожу тут. Вот, емаё, что ни открой - всё тут полезное. От души говорю! ОГРОМНОЕ СПАСИБО!!!
Даже просто хочется что нить новенькое о друпале посмотреть - теперь сюда буду заходить.
Отключаю адблок - посещаю ссылки гугл на твоей странице ;)
Кстати, что у тебя за редактор на комментариях висит такой симпатичный? :)
А стандартный модуль Search нужно выключать?
если он вам не нужен, то логично выключить
Информация полезна, но не новая =) тут появилось раньше и подробнее - http://dreamr1der.ru/drupal_facet_search
а вы не в курсе, можно ли накрутить зависимые фасеты по термину, то есть пока не выбран родитель не показывать фасет с дочерними терминами? Или это через #states нужно делать?
накрутил фасеты, поля иерархический термин, но вот проблема - если материал имеет несколько значений поля иерархического термина, то получается каша с выводом - то есть выбираешь из первого селекта родителя, во втором селекте доступны ВСЕ дочерние термины без привязки к родителю, тоже самое и с выбором второго селекта, не знаете как фильтрануть, что бы показывал значения, только в рамках иерархии?
буду крайне признателен, если вы меня наведете на мысль по выше написанному. Если я не понятно изложил ситуацию, может данная картинка прояснит ситуацию - картинка
ну как-то на js изменять или аджаксом подгружать.
я с фасетами особо не работал.
жаль. смотрю тема не особо популярная, судя по количеству информации в сети.
Вроде бы все просто, нужно дочерние ограничить только выбранным родителем, а по факту хз как подойти.
п.с. спасибо за ответ.
А можно ли хуком изменить значение фасета? Если да, то каким?
Использую ползунок для выбора цены и веса, в обоих фасетах есть кнопка "Пуск". Как сделать так, чтобы кнопка была одна?
Очень рекомендую: https://www.drupal.org/project/facetapi_pretty_paths
сначала я его не использовал, но если всё правильно настроить, то можно получить кучу дополнительных страниц.
- Конечно надо запретить дубли в роботс.тхт
- Нужно самому покодить, чтобы получилось всё красиво ;-)
- мета теги актуальные и т.п.
Подскажите, может есть возможность сохранять результаты поиска по фасетам, и потом выдавать ссылку на результат. Только чтобы не сам пользователь сохранял, а автоматически.
Добавить комментарий