Покрокова інструкція налаштування Search API для пошуку з морфологією.
Хто користується вбудованим в друпал модулем пошуку і з якихось причин не хоче використовувати Search API, тому досить включити модуль Russian stemming і зробити переіндексацію індексу на сторінці admin / config / search / settings. Після цього пошук з морфологією запрацює без додаткової настройки.
Налаштування Search API
Відключаємо модуль Search.
На сторінці admin / config / search / search_api додаємо новий сервер з класом Database service:
На сторінці admin / config / search / search_api переходимо в налаштування дефолтного індексу:
Змінюємо сервер на створений раніше і зберігаємо зміни:
На сторінці admin / config / search / search_api включаємо дефолтний індекс:
На сторінці admin / config / search / search_api переходимо в настройки Workflow у дефолтного індексу:
У блоці Processors включаємо Russian stemmer:
На цій же сторінці змінюємо порядок процесорів так, щоб Russian stemmer виявився останнім і зберігаємо зміни:
На сторінці admin / config / search / search_api переходимо по посиланню Status дефолтного індексу:
Запускаємо індексування за допомогою кнопки Index now:
Після закінчення індексування перевіряємо таблицю search_api_db_default_node_index_body_value. У ній повинні бути слова без закінчень:
Налаштування Views
Включаємо модуль Search views зі складу Search API.
Створюємо сторінку уявлення з дефолтного індексу і з висновком Rendered entity:
Додаємо розкритий фільтр Search: Fulltext search
В налаштуваннях фільтра вибираємо оператор Contains any of these words. а в поле Searched fields все поля з індексу, за якими буде відбуватися пошук:
Детальніше про Search API:
Написане актуально для Drupal 7 Схожі записи
Дякую за статтю. Підкажіть а як бути якщо я підключаю модуль search api autocomplete. У мене підтягуються результати - автокомпліт працює. Проблема виникає якщо я фільтрую по термінам - додатково до пошуку. Як зробити щоб в автокомпліт потрапляли тільки дані, Ноди яких пов'язані з обраним терміном. Тобто що то зразок фасетного пошуку.
Дякую за статтю, в який раз до неї повертаюся.
Але тут виникла маленька проблема:
пошук тупо ігнорує цифру "0". Якщо вводити 100 - знаходить значення в яких є 100, якщо 001 - шукає тільки 1. Просто ввести 0 - все залишається на місці. Через фільтр по заголовкам такої проблеми немає, якщо заголовки брати з індексу нуль не шукає. Грішу на токенайзер, може де пробільні символи що ввести? Підкажіть будь ласка, вже всю голову зламав.
Хоча якщо токенайзер відключити нічого не змінюється ..