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

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.