Búsqueda
Overview
Search V1 es una función principal del CMS que ofrece búsqueda pública, basada en la base de datos, sobre el contenido de las páginas publicadas.
- La búsqueda indexa únicamente páginas públicas publicadas.
- Las filas de búsqueda están delimitadas por sitio e idioma (locale).
- La búsqueda utiliza una tabla derivada
public_search_index. - La búsqueda no requiere servicios externos como Meilisearch, Algolia, Elasticsearch o Scout.
Qué se indexa
- el título de la traducción de la página, el slug y los metadatos de la ruta pública
- los árboles de bloques publicados propiedad de la página en los slots habilitados
- el contenido compatible de Shared Slot tal como lo consume la página pública
La búsqueda no indexa:
- páginas internas en borrador, en revisión, archivadas u ocultas
- las páginas de origen de Shared Slot como resultados de búsqueda independientes
- los slots deshabilitados
- contenido de Shared Slot entre sitios, inactivo, incompatible con el shell o incompatible con el slot
- etiquetas exclusivas de la administración, nombres de tipos de bloque, clases CSS o blobs de configuración en bruto como contenido de búsqueda
- las descripciones SEO de la página, las palabras clave y los metadatos de Open Graph como contenido público del cuerpo de la búsqueda
La búsqueda todavía puede utilizar el título de la traducción de la página, porque forma parte de la identidad de la página pública, pero por lo demás las anulaciones SEO de la página se tratan como metadatos de cabecera y no como contenido del cuerpo indexable en Search V1.
Rutas públicas de búsqueda
- idioma predeterminado:
/search?q=term - idioma no predeterminado:
/{locale}/search?q=term - endpoint JSON mejorado:
/search.json?q=term - endpoint JSON mejorado y localizado:
/{locale}/search.json?q=term
El host actual resuelve el sitio y el prefijo de ruta resuelve el idioma (locale) utilizando el mismo modelo de enrutamiento público que las páginas.
Experiencia de usuario de la búsqueda pública
La experiencia pública principal es un modal de búsqueda mejorado que se abre desde el activador de búsqueda de Header Actions cuando JavaScript está disponible.
- el activador sigue siendo un enlace normal a la ruta
/searchdel idioma actual, de modo que los enlaces directos, el uso sin JS y la alternativa de accesibilidad siguen funcionando - los resultados del modal se basan en
public_search_index - los resultados permanecen delimitados al sitio y al idioma resueltos actualmente
- la descripción del modal puede indicar la etiqueta del sitio resuelto para que los usuarios vean en qué sitio se está buscando
- la página alternativa
/searchsigue siendo la experiencia canónica sin JS y para enlaces directos
El modal de búsqueda pública utiliza únicamente Site Identity:
- la precedencia de la etiqueta del sitio es
display_name, despuésseo_titley despuésname - Project Identity, en
System -> Settings, es exclusivo de la administración y no afecta al texto ni al alcance de la búsqueda pública
El endpoint JSON devuelve datos estructurados y seguros para el modal:
querynormalizadocountminimum_lengthresultscontitle,urlyexcerpt- mensaje
no_resultscuando corresponde - mensaje
minimum_query_lengthcuando corresponde
El endpoint no expone datos de administración, contenido en borrador ni HTML sin depurar.
Bloque Search Form
Utilice el bloque de primer nivel Search Form para colocar un formulario de búsqueda en cualquier slot público.
- campos traducidos: etiqueta accesible, marcador de posición, etiqueta del botón
- campos compartidos: visibilidad del botón y variante del botón
- destino predeterminado: la ruta de búsqueda resuelta del sitio actual
- el valor actual de
qse conserva cuando el bloque se renderiza en la página de búsqueda - sigue enviándose a
/searchcomo un formulario GET normal y no se fuerza al flujo del modal
Pantalla de administración
Los super administradores pueden revisar el estado de la búsqueda en Admin -> Maintenance -> Search Rebuild.
La pantalla muestra:
- total de filas indexadas y marca de tiempo de la última indexación
- cobertura por sitio
- cobertura por idioma (locale)
- acción de reconstrucción
Comando de reconstrucción
Utilice el comando de reconstrucción no destructivo cuando necesite volver a crear las filas de búsqueda derivadas:
php artisan search:rebuild
php artisan search:rebuild --site=default
php artisan search:rebuild --locale=tr
php artisan search:rebuild --page=123
El comando reconstruye únicamente el ámbito de búsqueda solicitado y no modifica el contenido del CMS.
Si la tabla de búsqueda no existe en la instalación actual, ejecute primero php artisan migrate para que se pueda crear el índice derivado.
Límite de portabilidad
public_search_index son datos derivados de tiempo de ejecución.
- puede estar presente en las copias de seguridad y restauraciones de entorno porque estas operan sobre toda la base de datos
- no es contenido del sitio necesario para la portabilidad de exportación/importación
- los flujos de exportación/importación deberían reconstruir las filas de búsqueda tras la transferencia de contenido cuando sea necesario
Seguridad
Search V1 no requiere comandos destructivos de reinicio de la base de datos.
- las protecciones frente a comandos destructivos siguen vigentes
- las reconstrucciones borran y vuelven a crear únicamente las filas de búsqueda derivadas del ámbito solicitado