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
/searche/{lang}/search, usando índices por idioma com base emhtml[lang]. - Tornar obrigatório o passo de indexação do Pagefind após
astro buildno 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.
hsb.horse