Поиск (s2_search)
Это расширение добавляет поиск на страницы сайта.
Принцип работы
В основе работы любого поиска лежит использование поискового индекса. В индексе хранится информация о том, на каких страницах встречалось каждое слово. На основе этой информации и формируется страница результатов поиска.
При создании, редактировании или удалении одной страницы изменения автоматически попадают в индекс расширения s2_search. Любые другие существенные изменения сайта, например, изменение URL или удаление разделов, содержащих несколько страниц, в индекс не попадают. Перестройка индекса в этих случаях может быть длительной, и переиндексацию нужно запускать вручную (ссылка на первом скриншоте ниже).
Вообще, переиндексация никогда не повредит. Ее нужно выполнить в первую очередь при возникновении
Результаты поиска сортируются по релевантности — степени соответствия страниц запросам. При поиске используется не только заголовок и текст страниц, но и содержимое
Это расширение основано на сделанном мной механизме поиска на сайте правил русского языка.
Установка
Расширение s2_search устанавливается как обычно.
После установки нужно создать поисковый индекс (ссылка на скриншоте ниже).
Панель управления
На вкладке статистики появляется ссылка для переиндексации.
На вкладке настройки можно включить «быстрый поиск» по заголовкам, который будет выдавать подсказки, пока пользователь набирает поисковую фразу.
Результаты поиска
Для вывода результатов поиска используется шаблон service.php
.
«Быстрый поиск» в действии.
Системные требования и ограничения
Текущая версия предназначена для небольших сайтов. В ней поисковый индекс хранится в файле и должен целиком загружаться в память. Как показывают эксперименты, количество расходуемой оперативной памяти во время создания индекса примерно в
Таким образом, основное ограничение в текущей версии — количество памяти, доступной
Например, на моем сайте written.ru размер файла с индексом чуть больше полутора мегабайт. Это значит, что количество используемой памяти укладывается в 16 мегабайт.
Дополнительные метки
Расширение s2_search определяет новую метку <!-- s2_search_field -->
. Вместо нее подставляется
Изменение HTML-разметки формы поиска
Вы можете прописать в шаблонах произвольный <!-- s2_search_field -->
, если стандартная разметка вас не устраивает. Форме нужно установить атрибут action="<?php echo S2_BASE_URL; ?>/search"
, а полю ввода атрибут name="q"
.
Чтобы подключить «быстрый поиск», нужно прописать полю ввода id="s2_search_input"
. Дополнительная настройка положения и ширины блока с результатами осуществляется через атрибут поля ввода data-s2_search-pos="-5, 2, 10"
: в этом примере блок смещен на 5 пикселей влево и 2 пикселя вниз, его ширина увеличена на 10 пикселей.