You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
senzapaura_es/docs/busqueda-global.md

49 lines
2.6 KiB

# Búsqueda global
La lupa de la cabecera abre un diálogo con consulta, tipo de contenido y alcance
(títulos o títulos y contenido). Al enviar, navega a `/buscar`. Sin JavaScript,
el enlace lleva a esa misma página y el formulario GET sigue funcionando.
El formulario es compartido por el diálogo y la página. Los filtros y la página
de resultados están en la URL; pueden compartirse y se conservan al volver atrás.
Los resultados se presentan sin tarjetas ni bordes de contenido.
El buscador usa el contenedor general del sitio, alineado con la cabecera. Las
canciones muestran su portada (o la de su álbum si no tienen una propia), y los
álbumes muestran la suya. Solo se entregan imágenes marcadas como públicas; se
resuelven después de paginar y no alteran los recuentos de búsqueda.
## Fuentes y visibilidad
`src/lib/server/busqueda-consulta.ts` proyecta documentos desde PostgreSQL:
- Música: canciones principales, álbumes y estilos publicados; respeta también
la publicación del álbum y del estilo. Incluye letras y metadatos textuales.
- Artistas: fichas publicadas y su biografía.
- Blog: entradas publicadas, su texto y etiquetas.
- Taller: capítulos publicados, secciones de género y definiciones del glosario.
- Legal: únicamente la versión vigente de cada documento.
- Páginas publicadas y planes de suscripción disponibles.
Los bloques del editor sustituyen al cuerpo legado cuando existen. Se consultan
sus campos textuales, no identificadores ni URLs de medios. No se consultan
cuentas, pedidos, listas privadas ni archivos de audio. La búsqueda no concede
permisos de escucha o descarga: enlaza a las fichas públicas existentes.
## Consulta y mantenimiento
Una consulta parametrizada busca todas las palabras, prioriza coincidencias en
el título y devuelve 20 resultados por página. No descarga todo el catálogo al
navegador. Una publicación o edición se refleja en la siguiente búsqueda sin
sincronizar otro almacén.
La base actual usa `SQL_ASCII` aunque almacena texto UTF-8. Por ello no se usa
`translate()` para quitar tildes: compara bytes y produce resultados incorrectos.
Se construyen alternativas literales de acentos, escapando toda sintaxis regex
del usuario. Las pruebas PostgreSQL cubren tildes, publicación, versión legal,
bloques, entradas especiales y paginación en tablas temporales de sesión.
Esta versión consulta el contenido directamente, sin índice de búsqueda dedicado.
Si el volumen lo requiere, el siguiente paso es medir las consultas, migrar la
codificación a UTF-8 mediante un procedimiento independiente y añadir un índice
textual manteniendo el mismo contrato público de búsqueda.

Powered by TurnKey Linux.