Проблема з пошуком в Бітрікс: повільно та нерелевантно
Повнотекстовий пошук в Бітрікс вимагає правильної індексації, налаштування морфології та релевантності. Налаштування пошуку в Бітрікс — поширена задача, яка часто виконується незадовільно. Модуль search Бітрікс будує індекс, але типові симптоми: індекс не збудований — нічого не знаходиться; знаходяться всі сторінки підряд, включаючи службові; на каталозі з 50 000 товарів пошук зависає на 30 секунд. Ми налаштували десятки проектів з різними обсягами даних — від інтернет-магазинів до порталів. Кожна ситуація потребує свого підходу. Розберемо ключові механізми та прийоми, які дозволяють прискорити пошук в 4 рази та підвищити релевантність на 60%.
Розуміння того, як саме модуль search будує індекс, критичне для діагностики проблем. Індекс зберігається в таблицях b_search_content (контент), b_search_content_stem (стем-індекс для морфології) та b_search_tag (теги). При збереженні елемента інфоблоку спрацьовує подія OnSearchIndex. Якщо індекс не оновлюється автоматично, необхідно перевірити налаштування агентів та наявність помилок у журналі подій.
Наслідки повільного або нерелевантного пошуку критичні для інтернет-магазину: клієнти не знаходять потрібний товар, йдуть до конкурентів. Для корпоративного порталу — зниження продуктивності співробітників. Ми стикалися з проектами, де після базового налаштування пошуку конверсія зросла на 15%, а час на пошук скоротився з 10 секунд до 0.5. Економія на серверних потужностях досягає 30% за рахунок зниження навантаження на базу даних. Наприклад, для проекту з 100 000 товарів економія на серверних потужностях складає до 15 000 грн на місяць.
Як налаштувати джерела індексації?
-
Вибір інфоблоків: Перейдіть до
Налаштування → Пошук → Переіндексація. Виберіть необхідні інфоблоки (наприклад, каталог товарів, новини) та позначте властивості, які потрібно індексувати. -
Налаштування морфології: Увімкніть морфологію в налаштуваннях модуля пошуку (
Налаштування → Пошук → Налаштування модуля). Це дозволить знаходити словоформи (купити, купив, покупка). - Налаштування символів: Встановіть мінімальну довжину слова для індексації — 3 символи. Це виключить занадто короткі слова.
- Виключення технічних сторінок: Додайте винятки для сторінок особистого кабінету, кошика, адмінки, щоб вони не потрапляли у результати пошуку.
- Оптимізація продуктивності пошуку: Для великих каталогів (від 50 000 товарів) налаштуйте інкрементальну індексацію через агенти, обробляючи по 500 елементів за крок.
Компонент пошуку bitrix:search.page дозволяє гнучко налаштувати фільтри та продуктивність пошуку:
$APPLICATION->IncludeComponent('bitrix:search.page', '', [ 'SITE_ID' => 's1', 'SEARCH_CACHE_TIME' => 3600, 'DEFAULT_WORD' => '', 'MINIMAL_QUERY_LEN' => 3, 'USE_SUGGEST' => 'Y', 'arrFILTER' => [ ['MODULE_ID' => 'iblock', 'PARAM1' => 'catalog', 'PARAM2' => 5], ['MODULE_ID' => 'iblock', 'PARAM1' => 'content'], ], ]); Чому індексація не працює на великому каталозі?
Для великих каталогів (від 50 000 елементів) повна переіндексація може займати години. Проблема поглиблюється, якщо індексуються всі властивості інфоблоків без розбору. Рішення — інкрементальна індексація через агенти. Ми налаштовуємо агенти, які обробляють по 500 елементів за крок. Для проекту з 200 000 товарів час повної переіндексації скоротився з 3 годин до 15 хвилин. Додатково вмикаємо теговане кешування компонента пошуку — швидкість відповіді зростає в 4 рази.
Оптимізація релевантності: налаштування ваг
Бітрікс використовує вбудований стемінг для російської мови. При включеній морфології запит «червоні сукні» знайде «червоне плаття» та «червоний сукні». Морфологічний індекс будується в b_search_content_stem. Релевантність результатів керується вагами: слово в заголовку — високий вес, в тілі — середній, в тезі — середній. Додатково можна налаштувати ваги через параметри b_search_content.PARAM1.
Правильне налаштування ваг — ключовий фактор. Слово в заголовку повинно важити в 5 разів більше, ніж в тілі. Значення задаються в налаштуваннях модуля або в коді компонента. Також важливо виключити нерелевантні сторінки: особистий кабінет, кошик, службові розділи. Для каталогів з 100 000 товарів ми використовуємо профілі індексації різних типів контенту.
Порівняння стандартного пошуку та Elasticsearch
Elasticsearch забезпечує релевантність, яка в 2 рази краща, ніж стандартний пошук. Стандартний пошук програє Elasticsearch у 3 рази за швидкістю індексації. Нижче наведено порівняння:
| Критерій | Стандартний пошук | Elasticsearch |
|---|---|---|
| Швидкість індексації | Повільно при >50k елементів | До 10 разів швидше |
| Релевантність | Налаштовується вагами | Гнучкі налаштування + машинне навчання |
| Морфологія | Вбудований стемінг | Словники + мовні аналізатори |
| Навантаження на БД | Високе | Виноситься на окремий кластер |
| Складність впровадження | Базове налаштування 2–4 год | 2–5 днів + розробка |
Як прискорити індексацію?
| Розмір каталогу | Стандартна індексація | Інкрементальна (агенти) | Elasticsearch |
|---|---|---|---|
| 10 000 товарів | 15 хв | 5 хв | 2 хв |
| 100 000 товарів | 2 год | 20 хв | 5 хв |
| 500 000 товарів | 10 год | 1 год | 15 хв |
Наприклад, вартість базового налаштування пошуку для невеликого магазину становить від 2000 грн, а комплексна інтеграція з Elasticsearch для каталогів понад 200 000 товарів — від 15 000 грн.
Що входить у налаштування пошуку під ключ?
Ми пропонуємо повний цикл робіт, підтверджений досвідом 50+ проектів та гарантією результату:
- Аудит поточного стану: перевірка індексу, морфології, ваг, логів помилок.
- Проектування архітектури з урахуванням обсягів та структури контенту.
- Налаштування джерел, виключення сміття, оптимізація продуктивності.
- Інтеграція з Elasticsearch для каталогів від 200 000 товарів.
- Документація по налаштуваннях та навчання адміністраторів.
- Підтримка після впровадження (2 тижні безкоштовно).
Строки: базове налаштування — від 2 годин, тонке налаштування з морфологією — від 4 годин, інтеграція Elasticsearch — від 2 днів. Вартість розраховується індивідуально і залежить від обсягу даних та складності. В середньому, економія на серверних ресурсах окупає інвестиції протягом 3 місяців.
Типові помилки при налаштуванні
- Забувають виключити особистий кабінет та адмінку — вони потрапляють у видачу.
- Не вмикають морфологію — пошук не знаходить словоформи.
- Індексують всі властивості інфоблоків — індекс роздувається, падає швидкість.
- Не використовують кешування компонента — кожен запит лізе в БД.
Для глибокого розуміння процесу рекомендую прочитати статтю про повнотекстовий пошук у Вікіпедії та офіційну документацію модуля search.
Де замовити налаштування пошуку в Бітрікс?
Зв'яжіться з нами — отримайте безкоштовне оцінювання вашого проекту. Наші спеціалісти сертифіковані по 1С-Бітрікс, мають 10+ років досвіду. Ми гарантуємо, що пошук знаходитиме потрібні товари за секунди, а навантаження на сервер знизиться в 2-3 рази. Замовте консультацію — оцінимо ваш проект протягом дня і запропонуємо оптимальне рішення.







