Le widget Recherche propose une interface de recherche personnalisable pour les applications Web. Sa mise en œuvre nécessite peu de code HTML et JavaScript, et il est compatible avec les fonctionnalités courantes telles que les attributs et la pagination. Vous pouvez également personnaliser l'interface avec du code CSS et JavaScript.
Si vous avez besoin de plus de flexibilité, utilisez l'API Query. Consultez Créer une interface de recherche avec l'API Query.
Créer une interface de recherche
Pour créer l'interface de recherche, procédez comme suit :
- Configurez une application de recherche.
- Générez un ID de client pour l'application.
- Ajoutez un balisage HTML pour le champ de recherche et les résultats.
- Chargez le widget sur la page.
- Initialisez le widget.
Configurer une application de recherche
Chaque interface de recherche nécessite une application de recherche définie dans la console d'administration. L'application fournit des paramètres de requête, tels que les sources de données, les attributs et les paramètres de qualité de la recherche.
Pour créer une application de recherche, consultez Créer une expérience de recherche personnalisée.
Générer un ID de client pour l'application
Outre les étapes décrites sur la page Configurer l'accès à l'API Cloud Search, générez un ID de client pour votre application Web.
Lors de la configuration du projet :
- Sélectionnez le type de client Navigateur Web.
- Indiquez l'origine URI de votre application.
- Notez l'ID de client. Le widget ne nécessite pas de code secret du client.
Pour en savoir plus, consultez OAuth 2.0 pour les applications Web côté client Application.
Ajouter un balisage HTML
Le widget nécessite les éléments HTML suivants :
- Un élément
inputpour le champ de recherche - Un élément qui servira de point d'ancrage pour la boîte de dialogue de suggestion
- Un élément pour les résultats de recherche
- (Facultatif) Un élément pour les commandes d'attribut
Cet extrait de code montre les éléments identifiés par leurs attributs id :
Charger le widget
Incluez le chargeur à l'aide d'une balise <script> :
Fournissez un rappel onload. Lorsque le chargeur est prêt, appelez
gapi.load()
pour charger le client API, Google Sign-In et les modules Cloud Search.
Initialiser le widget
Initialisez la bibliothèque cliente à l'aide de gapi.client.init() ou gapi.auth2.init() avec votre ID de client et le champ d'application https://www.googleapis.com/auth/cloud_search.query. Utilisez les classes de compilateur pour configurer et lier le widget.
Exemple d'initialisation :
Variables de configuration :
Personnaliser l'expérience de connexion
Le widget invite les utilisateurs à se connecter lorsqu'ils commencent à saisir du texte. Vous pouvez utiliser Google Sign-In for Websites pour une expérience personnalisée.
Autoriser directement les utilisateurs
Utilisez Se connecter avec Google pour surveiller et gérer les états de connexion.
Cet exemple utilise GoogleAuth.signIn() lorsque l'utilisateur clique sur un bouton :
Connecter automatiquement les utilisateurs
Préautorisez l'application pour les utilisateurs de votre organisation afin de simplifier la connexion. Cette fonctionnalité est également utile avec Cloud Identity-Aware Proxy. Consultez Utiliser Google Sign-In avec des applications informatiques Apps.
Personnaliser l'interface
Vous pouvez modifier l'apparence du widget en procédant comme suit :
- Remplacer les styles avec du code CSS
- Décorer les éléments avec un adaptateur
- Créer des éléments personnalisés avec un adaptateur
Remplacer les styles avec du code CSS
Le widget inclut son propre code CSS. Pour le remplacer, utilisez des sélecteurs d'ancêtre afin d'accroître la spécificité :
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Consultez la documentation de référence sur les classes CSS compatibles.
Décorer les éléments avec un adaptateur
Créez et enregistrez un adaptateur pour modifier les éléments avant le rendu. Cet exemple ajoute une classe CSS personnalisée :
Enregistrez l'adaptateur lors de l'initialisation :
Créer des éléments personnalisés avec un adaptateur
Implémentez createSuggestionElement, createFacetResultElement ou createSearchResultElement pour créer des composants d'UI personnalisés. Cet exemple utilise
des balises HTML <template> :
Enregistrez l'adaptateur :
Les éléments d'attribut personnalisés doivent respecter les règles suivantes :
- Associez
cloudsearch_facet_bucket_clickableaux éléments cliquables. - Encapsulez chaque bucket dans un
cloudsearch_facet_bucket_container. - Conservez l'ordre des buckets de la réponse.
L'extrait de code suivant permet d'afficher les attributs sous forme de liens et non de cases à cocher.
Personnaliser le comportement de recherche
Remplacez les paramètres de l'application de recherche en interceptant les requêtes avec un adaptateur.
Implémentez interceptSearchRequest pour modifier les requêtes avant l'exécution. Cet exemple limite les requêtes à une source sélectionnée :
Enregistrez l'adaptateur :
Le code HTML suivant permet d'afficher une zone de sélection pour le filtrage par sources :
Le code suivant écoute la modification, définit la sélection et exécute à nouveau la requête si besoin.
Vous pouvez également intercepter la réponse en ajoutant
interceptSearchResponse
à l'adaptateur.
Épingler des versions
- Version de l'API : définissez
cloudsearch.config/apiVersionavant l'initialisation. - Version du widget : utilisez
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Les deux valeurs sont définies par défaut sur 1.0 si elles ne sont pas définies.
Par exemple, pour épingler le widget à la version 1.1 :
Sécuriser l'interface de recherche
Suivez les bonnes pratiques de sécurité pour les applications Web, en particulier pour éviter le détournement de clic.
Activer le débogage
Utilisez
interceptSearchRequest
pour activer le débogage :
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;