Удобный поиск
Подсказки при вводе, общая выдача и словарь разных написаний названий. Все настройки находятся в компоненте «Удобный поиск».
Начало работы
- Откройте в админке Компоненты → Удобный поиск → Опции.
- Включите подключение к штатным формам поиска. Подсказки появятся в шапке, поисковых виджетах и на странице результатов.
- Выберите разделы и их порядок. Нажмите Сохранить.
- Откройте Поисковые алиасы, чтобы добавить русские или альтернативные названия.
Настройки поиска
- Максимум подсказок — сколько вариантов показывать во всплывающем списке, до 10.
- Минимум символов запроса — когда начинать подсказывать, от 2 до 5 символов.
- Результатов на странице — размер полной выдачи, от 10 до 50.
Текущие значения видны в форме опций. Полная выдача учитывает выбранный период и режим сортировки.
Разделы и приоритет
Переключатель включает или выключает раздел. Важные разделы расположите выше: перетащите строку за ручку ↕ либо нажмите стрелку вверх или вниз. Затем нажмите Сохранить.
В списке показаны типы контента, доступные штатному компоненту «Поиск». Если нужного раздела нет, проверьте его включение там и участие полей в полнотекстовом поиске. Выключенные разделы не появятся ни в подсказках, ни в полной выдаче.
Поисковые алиасы
Одна строка таблицы — одна группа названий. В поисковом поле под заголовком «Основное название» можно найти и основное название, и любое другое написание. Например, русский вариант найдёт группу с английским названием. Большой словарь разбивается на страницы.
- Нажмите Добавить или название существующей группы.
- Укажите основное название, например ChatGPT.
- В поле «Другие написания» вставьте варианты по одному на строку, например «чатгпт» и «чат джипити».
- Нажмите Сохранить. Таблица покажет сохранённую группу.
Специальные разделители вводить не нужно. После сохранения новые варианты сразу участвуют в поиске.
Повторяющиеся написания
Регистр, пробелы, варианты кавычек, апострофов и тире, а также ё/е нормализуются автоматически. «ChatGPT», «CHAT GPT» и «Chat—GPT» отдельно добавлять не требуется. Значимые символы + и # сохраняются.
Повторения внутри одной группы объединяются автоматически. Если написание принадлежит другой группе, форма покажет сообщение и ссылку на неё. Ошибка не изменяет сохранённые данные. Если группу уже изменили в другом окне, откройте её заново, чтобы сохранить обе правки.
У каждой группы — основное название и до 11 других написаний, по 100 символов каждое. Алиас применяется ко всему запросу; в подсказках также работает начало алиаса. Автоматического перевода, исправления произвольных опечаток и раскладки нет.
Как ищутся материалы
Сначала идут точное название и его алиасы, затем начало названия, совпадение в названии и в тексте. Внутри каждого уровня учитываются порядок разделов и свежесть материалов. В режиме «Сначала новые» полная выдача сортируется по дате.
Для управления подсказками используйте стрелки и Enter, для закрытия списка — Escape. Обычный Enter без выбранной подсказки открывает полную выдачу.
Поиск использует поля, включённые в штатный полнотекстовый индекс. Приватные, неодобренные, удалённые, скрытые и будущие материалы исключаются. Компонент работает с типами контента; отдельные источники других компонентов требуют адаптеров.
Защита от вредных запросов
Защита включена при установке. Настройки находятся в Опции, блок Защита; журнал — пункт меню Защита.
- Слишком частые запросы. Если с одного адреса подсказки запрашивают чаще 60 раз в минуту, а поиск открывают чаще 30 раз, сайт на минуту просит подождать. Это не блокировка: после паузы всё работает как обычно. Частоту можно изменить или отключить.
- Попытка взлома. Если в поисковом запросе явно пытаются подменить условие запроса к базе, вставить скрипт, открыть системный файл или выполнить команду на сервере, сайт закрывается этому посетителю на 24 часа. Гость закрывается по своему адресу, а зарегистрированный — штатной блокировкой в «Пользователях» и тоже на 24 часа.
- Обычные запросы не наказываются. Слова, кавычки, названия технологий, вопросы и примеры кода блокировку не вызывают. Если запрос похож на вопрос с примером, он попадает в журнал, но посетитель продолжает работать.
Снять блокировку с гостя: Компоненты → Удобный поиск → Защита, найдите строку с нужным адресом и нажмите Снять блокировку. С зарегистрированного пользователя: Компоненты → Пользователи → Изменить, снимите отметку Заблокирован и сохраните — его адрес откроется автоматически.
Администраторы сайта и адреса из белого списка не блокируются. Срок блокировки, частоту запросов и само распознавание можно изменить или выключить в опциях.
В журнале блокировки отмечены красным, превышения частоты — жёлтым, записи без блокировки — серым. Кнопка Отображение столбцов сохраняет ваш набор колонок. Пояснение под таблицей свёрнуто и раскрывается нажатием Как снимать блокировки.
Завершённые события можно удалить кнопкой в строке или выделить несколько строк и выбрать Удалить завершённые события. Действующие блокировки сохраняются даже при массовом удалении: сначала снимите блокировку. Удалённые записи журнала восстановить через интерфейс нельзя.
Поле «Пользователь» фильтрует по нику, ID (например, 1 или #1) и слову Гость. Подтвердите ввод клавишей Enter. Фильтры можно сочетать с датой, событием и IP.
Завершённые события старше 90 дней и счётчики старше 5 минут очищает задача «Удобный поиск: очистка журнала и проверка лицензии» с периодом 5 минут. Действующие блокировки сохраняются. На хостинге должен запускаться штатный cron.php InstantCMS; без него автоматическая очистка не выполняется. Задача работает и при выключенной защите или истёкшем пробном доступе, пока включён сам компонент.
Пробный доступ и лицензия
Базовый поиск, подсказки, выбор разделов и их приоритет работают без покупки. Поисковые алиасы и защита получают пробный доступ на 72 часа автоматически, без ввода ключа. Срок и состояние видны в разделе Лицензия. Пробный срок учитывается сервером автора для пары «компонент + домен» и начинается при первой выдаче подписанной пробной лицензии. Удаление и повторная установка компонента не обнуляют этот срок. До первого успешного подключения к серверу алиасы и защита недоступны; базовый поиск работает. Если подписанная пробная лицензия уже получена, она работает без связи с сервером до своего срока, бессрочная — постоянно.
После окончания пробного доступа алиасы не расширяют запросы, защита не применяет блокировки и ограничения частоты. Их вкладки показывают ссылку на карточку дополнения на OCMarket. Данные и настройки сохраняются; базовый поиск продолжает работать. Новые блокировки пользователей во время пробного доступа ограничены концом его срока.
После покупки автор подтверждает лицензию для домена на своём сервере. Компонент получает бессрочный подписанный токен автоматически при следующей проверке (не чаще раза в час); кнопка Проверить сейчас ускоряет получение. Затем токен проверяется на самом сайте, сервер больше не требуется. Для сопоставления покупки можно сохранить короткую пометку в разделе Лицензия; пароли и секреты туда не вводите. При смене домена требуется лицензия на новый домен. Локальные адреса разработки, в том числе .test, работают без ограничений.
Отключение и удаление
Снимите флажок подключения форм и сохраните настройки, если хотите вернуть прежнее поведение существующих поисковых полей. Отдельная страница и собственный виджет улучшенного поиска останутся доступны. Полное выключение компонента возвращает штатные формы после обновления страницы.
Для полного удаления выберите обычное удаление в списке Компоненты. На странице предупреждения подтвердите потерю данных и собственных шаблонов. Будут удалены файлы компонента, его отдельное руководство, пять собственных таблиц (словарь, ключи алиасов, журнал, счётчики, сведения лицензии), опции, события, задача планировщика и размещения его виджета. Автоматические блокировки пользователей, всё ещё принадлежащие этой защите, снимаются; изменённые вручную блокировки сохраняются.
Материалы сайта, штатный поиск, другие компоненты и общая папка docs/_shared сохраняются. Удаление необратимо; заранее сохраните нужный словарь. После повторной установки бессрочную лицензию для прежнего домена можно снова получить с сервера автора.