Feito com Chinaski

Busca

Os sites construídos incluem uma página de busca funcional em /search/, gerada por idioma no momento do build, respaldada por um índice JSON estático e pesquisada inteiramente no navegador do visitante. Esta página cobre como funciona e como ela se mantém atualizada.

Como funciona

  • O builder escreve um índice de busca: <language>/search-index.json, contendo toda página e post publicado naquele idioma: o tipo da entrada, o título, a URL absoluta e um excerpt (o excerpt do autor quando fornecido; caso contrário, um resumo de 160 caracteres gerado a partir do corpo).
  • A página de busca (renderizada a partir de search.tt, com o header e o footer do seu tema) carrega esse índice no cliente e casa a consulta q= do visitante localmente. Sem ida ao servidor, sem backend de busca, nada para configurar.

O que é pesquisável

  • Páginas e posts publicados, por idioma. Cada entrada do índice carrega o título, a URL do resultado e o excerpt. Então o que corresponde é exatamente o que um visitante lê na listagem.
  • Os índices são delimitados por idioma: uma busca sob o /search/ de um idioma nunca revela resultados em outro idioma (consistente com o modelo de saída por idioma).
  • Os excerpts vêm do próprio campo de excerpt do autor quando definido, senão do resumo gerado automaticamente. O mesmo texto usado em listagens e feeds, então as prévias da busca correspondem ao que um clique mostra.

Sempre atualizada

O índice é regenerado a cada build. Builds incrementais também. Então os resultados da busca refletem exatamente o conteúdo que foi promovido por último. Publique, reconstrua, e a busca o vê.

Detalhes da página utilitária

  • As páginas /search/ são marcadas como noindex pelo builder, então nunca aparecem em sitemaps ou listagens de crawlers.
  • O service worker (PWA) também pré-cacheia a página de busca por idioma, então a busca renderiza do cache offline: casando consultas contra o índice incluído.
  • O formulário de busca do header aponta para a mesma URL /search/ com um parâmetro q=, em todos os vhosts de idioma.

Buscas no lado do CMS (um sistema relacionado, mas separado)

A área administrativa tem suas próprias superfícies de busca. A busca de blocks da Library, a busca da listagem de documentos e o endpoint /api/search da API para scripts. Mas essas pesquisam o banco de dados e são administrativas. A página de busca pública é a construída descrita aqui.

Leia este site em