logo hsb.horse

Registro de Decisão de Arquitetura

Política de adoção de busca no site com Pagefind

Adotar Pagefind para busca full-text em site estático e padronizar rotas de busca localizadas com integração no build.

Aceito #search #pagefind #architecture #i18n

Política de adoção de busca no site com Pagefind

Decisão

  • Adotar o Pagefind como mecanismo de busca de todo o site.
  • Fornecer rotas de busca em /search e /{lang}/search, usando índices por idioma com base em html[lang].
  • Tornar obrigatório o passo de indexação do Pagefind após astro build no pipeline de build.
  • Fazer a navegação de busca no header apontar sempre para a página de busca da locale atual.

Contexto

O site é totalmente estático e precisa oferecer busca full-text sem adicionar infraestrutura de busca no servidor. Como já publica URLs multilíngues (ja/en/ko/fr/de/pt), o comportamento da busca também deve permanecer segmentado por idioma.

Opções

  • Opção A: usar um serviço de busca hospedado externo
  • Opção B: implementar e manter uma API de busca própria
  • Opção C: introduzir Pagefind com indexação estática (escolhida)

Justificativa

  • O Pagefind roda após a geração de HTML estático e se encaixa no fluxo do Astro.
  • A seleção de índice por idioma via html[lang] funciona nativamente.
  • Busca no cliente reduz custo operacional e evita dependências extras de infraestrutura.

Consequências

  • Builds de produção devem gerar dist/pagefind/.
  • A UI inicial usa @pagefind/default-ui, com possibilidade de migração futura para UI customizada.
  • Ajustes de relevância (exclude selectors, weighting, enriquecimento de metadados) serão evoluídos após observar uso real da busca.