El widget de búsqueda proporciona una interfaz de búsqueda que se puede personalizar para aplicaciones web. Requiere una cantidad mínima de código HTML y JavaScript para implementarse, y admite funciones comunes, como facetas y paginación. También puedes personalizar la interfaz con CSS y JavaScript.
Si necesitas más flexibilidad, usa la API de Query. Consulta Cómo crear una interfaz de búsqueda con la API de Query.
Compila una interfaz de búsqueda
Para compilar la interfaz de búsqueda, debes seguir estos pasos:
- Configura una aplicación de búsqueda.
- Genera un ID de cliente para la aplicación.
- Agrega el lenguaje de marcado HTML para el cuadro de búsqueda y los resultados.
- Carga el widget en la página.
- Inicializa el widget.
Configura una aplicación de búsqueda
Cada interfaz de búsqueda requiere una aplicación de búsqueda definida en la Consola del administrador. La aplicación proporciona parámetros de configuración de la búsqueda, como fuentes de datos, facetas y parámetros de calidad de la búsqueda.
Para crear una aplicación de búsqueda, consulta Crea una experiencia de búsqueda personalizada.
Genera un ID de cliente para la aplicación
Además de los pasos que se indican en Configura el acceso a la API de Cloud Search, genera un ID de cliente para tu aplicación web.
Cuando configures el proyecto, haz lo siguiente:
- Selecciona el tipo de cliente Navegador web.
- Proporciona la URI de origen de tu app.
- Toma nota del ID de cliente. El widget no requiere un secreto del cliente.
Si deseas obtener más información, consulta OAuth 2.0 para la aplicación web del lado del cliente.
Agrega el lenguaje de marcado HTML
El widget requiere los siguientes elementos HTML:
- Un elemento
inputpara el cuadro de búsqueda. - Es un elemento para fijar el diálogo de sugerencias.
- Es un elemento para los resultados de la búsqueda.
- Un elemento para los controles de facetas (opcional).
En este fragmento, se muestran elementos identificados por sus atributos id:
Carga el widget
Incluye el cargador con una etiqueta <script>:
Proporciona una devolución de llamada onload. Cuando el cargador esté listo, llama a gapi.load() para cargar el cliente de API, el Acceso con Google y los módulos de Cloud Search.
Inicializa el widget
Inicializa la biblioteca cliente con gapi.client.init() o gapi.auth2.init() con tu ID de cliente y el alcance https://www.googleapis.com/auth/cloud_search.query. Usa las clases de compilador para configurar y vincular el widget.
Ejemplo de inicialización:
Variables de configuración:
Personaliza la experiencia de acceso
El widget solicita a los usuarios que accedan cuando comienzan a escribir. Puedes usar el Acceso con Google para sitios web y disfrutar de una experiencia personalizada.
Autoriza a los usuarios directamente
Usa Acceder con Google para supervisar y administrar los estados de acceso.
En este ejemplo, se usa GoogleAuth.signIn() en un clic de botón:
Acceso automático para los usuarios
Autoriza previamente la aplicación para los usuarios de tu organización y, así, optimiza el acceso. Esto también es útil con Cloud Identity Aware Proxy. Consulta Usa Acceder con Google en apps de TI.
Personaliza la interfaz
Puedes cambiar la apariencia del widget de las siguientes maneras:
- Anular los estilos con CSS
- Decorar elementos con un adaptador
- Crea elementos personalizados con un adaptador.
Cómo anular los estilos con CSS
El widget incluye su propio CSS. Para anularlo, usa selectores principales para aumentar la especificidad:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Consulta la referencia de las clases de CSS compatibles.
Decora elementos con un adaptador
Crea y registra un adaptador para modificar elementos antes de la renderización. En este ejemplo, se agrega una clase de CSS personalizada:
Registra el adaptador durante la inicialización:
Crea elementos personalizados con un adaptador
Implementa createSuggestionElement, createFacetResultElement o createSearchResultElement para compilar componentes de IU personalizados. En este ejemplo, se usan etiquetas <template> de HTML:
Registra el adaptador:
Los elementos de faceta personalizados deben seguir estas reglas:
- Adjunta
cloudsearch_facet_bucket_clickablea los elementos en los que se puede hacer clic. - Encierra cada discretización en un
cloudsearch_facet_bucket_container. - Mantén el orden de los buckets de la respuesta.
Por ejemplo, el siguiente fragmento procesa facetas mediante vínculos, en vez de casillas de verificación.
Personaliza el comportamiento de la búsqueda
Anula la configuración de la aplicación de búsqueda interceptando solicitudes con un adaptador.
Implementa interceptSearchRequest para modificar las solicitudes antes de la ejecución. En este ejemplo, se restringen las consultas a una fuente seleccionada:
Registra el adaptador:
El siguiente código HTML se usa a fin de mostrar un cuadro de selección para filtrar por fuentes:
El siguiente código escucha el cambio, establece la selección y vuelve a ejecutar la consulta si es necesario.
También puedes interceptar la respuesta de búsqueda implementando interceptSearchResponse en el adaptador.
Cómo fijar versiones
- Versión de API: Establece
cloudsearch.config/apiVersionantes de inicializar. - Versión del widget: Usa
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Si no se configuran, ambos parámetros se establecen en 1.0 de forma predeterminada.
Por ejemplo, para fijar el widget en la versión 1.1, haz lo siguiente:
Asegura la interfaz de búsqueda
Sigue las prácticas recomendadas de seguridad para aplicaciones web, especialmente para evitar el clickjacking.
Cómo habilitar la depuración
Usa interceptSearchRequest para habilitar la depuración:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;