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.
49 lines
2.6 KiB
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.
|