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 /search del 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 /search sigue 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és seo_title y después name
  • 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:

  • query normalizado
  • count
  • minimum_length
  • results con title, url y excerpt
  • mensaje no_results cuando corresponde
  • mensaje minimum_query_length cuando 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 q se conserva cuando el bloque se renderiza en la página de búsqueda
  • sigue enviándose a /search como 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