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