Блог на Jekyll. Добавление поиска на сайт

Не думал, что буквально в 10 статьях мне уже самому иногда потребуется поиск :) Разумеется, если под рукой нет источника кода, гда это все быстро можно сделать. Так вот когда возникла небольшая потребность, сразу же попробовал что-то прикрутить на сайт.

Главное

Сразу оговорюсь, что большого желания лезть в уже готовые решения и что-то там допиливать не было. В моем случае еще и велик шанс, что сломается вообще все :)

Приводить примеры кодов тут тоже не буду, так как в большинстве своем сервисы по поиску снабжены хорошими примерами и достойной документацией.

Если сайт использует базу данных, а может еще и построен на динамической CMS, то должны быть несложными варианты написать поиск по БД самому или прикрутить готовый рабочий плагин. В случае с Jekyll имеем же обычную статику с хостингом не пойми где. И вот сходу по-простому я не нашел вариантов реализовать поиск.

Наиболее распространены 2 подхода (опять же по личному опыту).


Первый - это использование сторонних сервисов. Они индексируют ваш сайт, например, через RSS ленту и могут ориентироваться в ваших наборах слов ну и разумеется что-то выдавать в результатах поиска. Сюда из наиболее популярных я бы отнес Tapirgo, Google search, Yandex search.


Второй - собственная система поиска, интегрированная в исходных код. Тут вариант я нашел только один, но он достаточно популярен по моим оценкам - это lunr.js.


Я пробовал поработать с каждым из этих вариантов и опишу коротко их особенности.

Сначала посчитал хорошим вариантом заиметь собственную систему поиска и, конечно, попробовал внедрить lunr.js в свой проект. Настроить и подключить получилось за пару часов может (кто как справится, я js только base знаю). Недостаток, который меня остановил - проблемы с поиском на кириллице, точнее просто поиска нет. Неудивительно, что lunr.js я видел много реализаций на сайтах с латиницей. Разумеется, попробовал найти решение еще пару часов, но ничего не вышло толкового. Учитывая мое неуклюжее плавание в js, я пока этот способ отложил.

А остальные варианты мало чем отличаются. Их думаю надо попробовать и сразу определиться с конкретной реализацией.

В Tapirgo возникли какие-то проблемы на уровне настройки, взаимодействия по API. Возможно, сказывалась уже усталость, разбираться подолгу желания уже не было, особенно если интуитивно все становилось слегка запутанно.

Google, Yandex. Все примерно одинаково. Вставляем небольшой код и все готово, почти ничем не отличается от добавления той же аналитики и метрики на сайт.

Остановил выбор на яндексе, там как-то у меня удачнее получилось с формами вывода результатов поиска. А так при желании настроить можно все. Было бы время.

Резюме

Повторюсь, что делал я это больше для галочки. Пока особой потребности в собственном качественном поиске нет. Сначала затевал просто изучить тему, немного углубиться так сказать, а вышло что успел за несколько часов мало-мальский поиск сделать. Результатом доволен. Будет время и желание - надо поработать над позиционированием и оформлением формы поиска.

Если хорошо владеете js, или более того имеете опыт с кириллическим поиском в lunr.js или подобных библиотеках, то проблем думаю будет меньше и стоит остановиться на этом варианте релизации.

Мне же больше по моим критериям в данный момент подошел яндекс. Может заодно сайт индексироваться нормально будет :)

Окончательный выбор всегда за автором. Буду рад, если кто-то сможет поделиться своим опытом использования того или иного поиска.