В Друпал есть проблема: при использовании Facet Filters, если удалить какой-то термин таксономии, то Search Api в выводимых фасетных фильтрах будет отображать удаленный термин, но уже не в качестве наименования, а его ID (бывший ID)). При нажатии на такой фильтр, пользователь скорей всего получит ошибку на сайте.
Например: есть у нас термин таксономии, и его фасетный фильтр "Харьков", который нам нужно удалить.
Удаляем термин таксономии "Харьков", получаем вот такое:
Происходит это потому, что при удалении термина таксономии связи материала с термином остаются в базе данных. Переиндексация поискового сервера при этом не помогает.
Решение ошибки
Решение ошибки как оказалось довольно простое - установка модуля Field reference delete. Этот модуль автоматически удаляет все связи сущностей, которых больше не существует. В никакой предварительной настройке модуль не нуждается.
В нашем случае ставим этот модуль, удаляем ненужный термин таксономии, переиндексируем нужный поисковый индекс в Search Api - profit! Пустого фасета больше нет.
- 52 просмотра