DARTHARTH

Drupal 9 + Facet Search

Заметка о создании фильтрации через фасеты на Drupal 9.

Прежде всего удостоверимся, что у нас включены и установлены: Search Api, Facets, Search Database, Views.

Шаг 1 Конфигурация Search API

Идем в Конфигурация / Поиск и метаданные / Search API.

Добавляем сервер, выставляем минимальную длину слова. После этого добавляем индекс, в Datasources выбираем Content и в Configure the Content datasource выбираем нужный нам тип контента

Сервер выбираем тот, который мы создали. Жмем сохранить и в этом же интерфейсе переходим на выбор полей для индексации. Добавляем необходимые нам поля, сохраняем. Здесь же переходим в Процессы и ставим чекбоксы

  • Entity status
  • Index hierarchy (в случае, если нам для фильтрации нужна иерархия)
  • Игнорировать регистр
  • Фильтр HTML

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

Шаг 2 Конфигурируем представление

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

Задаем имя представления, в Показать выбираем что-то наподобе Index *название вашего созданного индекса из предыдущего шага*. Тут же ставим галочку «Создать страницу», формат отображения — неформатированный список из полей. Количество элементов и пагинацию можете настроить позже. Жмем «Сохранить и редактировать».

Открывается наше представление, где в расширенных настройках в пункте кеширование выбираем Search Api (tag based)

Также, можно добавить нужные нам поля для вывода и критерии фильтрации. В данный момент, если перейти на адрес этого представления, который задается в настройках страницы Путь

Откроется страницы просто с перечнем нашего контента.

Шаг 3 Создание фасетов

Теперь переходим в Конфигурация / Поиск и метаданные / Facets, где должна быть уже строка Facet source и представление созданное ранее, на пример

Жмем на кнопку «Add facet», в «Facet source» выбираем наше представление и в «Поле» выбираем поле по которому будет идти фильтрация. В «Name» задаем имя для вывода.

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

Что бы у нас нормально выводились названия каждого варианта фильтров нужно поставить галочку в пункте «Transform entity ID to label». В противном случае вместо названий у нас в фильтре выведутся айдишники. Сохраняемся.

Шаг 4 Добавляем фильтр в блок

И самое простое осталось, перейти в схема блоков и в нужном месте добавить блок фильтра с типом Facets

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Scroll Up