Поиск для статических сайтов на Astro
В прошлом месяце я добавил поиск на три сайта-каталога ИИ.
Перед тем как выбрать Pagefind, я сравнил четыре основных варианта. Вот почему я остановился на нем.
Претенденты
• Pagefind: библиотека на базе Rust. Она работает во время сборки и отдает всё в виде статических файлов. • Algolia DocSearch: хостинговый сервис. Он быстрый и отточенный, но платный для коммерческих сайтов. • Lunr.js: клиентская библиотека. Она работает офлайн, но увеличивает вес начальной загрузки страницы. • FlexSearch: более быстрая альтернатива Lunr, но она всё равно требует передачи всего индекса в браузер.
Почему я выбрал Pagefind
Размер индекса На моих сайтах 1 000 записей. Индекс Lunr добавил бы 4 МБ к каждой загрузке страницы. Pagefind использует шарды (shards). Он загружает небольшие фрагменты по мере того, как пользователь вводит текст. Начальная загрузка остается в пределах 30 КБ.
Стоимость Algolia стоит 49 долларов в месяц для коммерческих сайтов. Мой общий бюджет на все три сайта — 25 долларов в месяц. Pagefind бесплатен.
Развертывание Pagefind создает статические файлы. Cloudflare Pages автоматически кэширует их на edge-серверах. Вам не нужно управлять API-ключами или беспокоиться об ограничениях частоты запросов (rate limits).
Компромиссы
Pagefind не идеален. Вам стоит знать о двух его недостатках:
• Отсутствие логирования запросов: Pagefind работает в браузере. Он не сообщает вам, что именно ищут пользователи. Algolia делает это автоматически. Для Pagefind вам придется создать собственный слой логирования. • Базовая устойчивость к опечаткам: Pagefind использует простейший стемминг (stemming). Ему трудно справляться с серьезными опечатками. Algolia работает с опечатками гораздо лучше.
Сводное сравнение
• Pagefind: бесплатно, использует статические файлы, хорошо масштабируется благодаря ленивой загрузке (lazy loading), базовая устойчивость к опечаткам. • Algolia: $49/мес., использует облачную инфраструктуру, хорошо масштабируется, высокая устойчивость к опечаткам. • Lunr.js: бесплатно, передает индекс вместе со страницей, плохо масштабируется, слабая устойчивость к опечаткам.
Мой вердикт
Если вы ведете статический сайт с небольшим бюджетом и от 500 до 1 000 записей, используйте Pagefind. Если вам нужна продвинутая аналитика и идеальная устойчивость к опечаткам, платите за Algolia.
