Пошук для статичних сайтів на Astro
Минулого місяця я додав пошук до трьох сайтів-каталогів ШІ.
Перед тим як обрати Pagefind, я порівняв чотири основні варіанти. Ось чому я зупинився саме на ньому.
Головні претенденти
• Pagefind: Бібліотека на базі Rust. Вона працює під час збірки та надає все як статичні файли. • Algolia DocSearch: Хостинговий сервіс. Він швидкий і відшліфований, але коштує грошей для комерційних сайтів. • Lunr.js: Клієнтська бібліотека. Вона працює офлайн, але збільшує вагу початкового завантаження сторінки. • FlexSearch: Швидша альтернатива Lunr, але вона все одно потребує передачі всього індексу в браузер.
Чому я обрав Pagefind
Розмір індексу Мої сайти мають 1000 записів. Індекс 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 до 1000 записів, використовуйте Pagefind. Якщо вам потрібна розширена аналітика та ідеальна стійкість до помилок, платіть за Algolia.
