Перейти к основному содержанию
Facet Api выводит пустые фильтры после удаление термина таксономии - решение проблемы

В Друпал есть проблема: при использовании Facet Filters, если удалить какой-то термин таксономии, то Search Api в выводимых фасетных фильтрах будет отображать удаленный термин, но уже не в качестве наименования, а его ID (бывший ID)). При нажатии на такой фильтр, пользователь скорей всего получит ошибку на сайте.

Например: есть у нас термин таксономии, и его фасетный фильтр "Харьков", который нам нужно удалить.

пример активного фасета

Удаляем термин таксономии "Харьков", получаем вот такое:

пример пустого фасетного фильтра

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

Решение ошибки

Решение ошибки как оказалось довольно простое - установка модуля Field reference delete. Этот модуль автоматически удаляет все связи сущностей, которых больше не существует. В никакой предварительной настройке модуль не нуждается.

В нашем случае ставим этот модуль, удаляем ненужный термин таксономии, переиндексируем нужный поисковый индекс в Search Api - profit! Пустого фасета больше нет.

primer_faseta_2.png

Об авторе

Автор этого блога. В SEO более 10 лет. Кроме SEO интересуюсь всем, что связано с технологиями и заработком в интернете, о чем и стараюсь делиться с читателями.