Mit dem Such-Widget steht Ihnen eine anpassbare Suchoberfläche für Webanwendungen zur Verfügung. Für die Implementierung sind nur minimaler HTML- und JavaScript-Code erforderlich. Außerdem werden gängige Funktionen wie Facetten und Paginierung unterstützt. Sie können die Oberfläche auch mit CSS und JavaScript anpassen.
Wenn Sie mehr Flexibilität benötigen, verwenden Sie die Query API. Weitere Informationen Creating a search interface with the Query API.
Suchoberfläche erstellen
Für die Erstellung der Suchoberfläche sind folgende Schritte erforderlich:
- Suchanwendung konfigurieren
- Client-ID für die Anwendung generieren
- Dem Suchfeld und den Suchergebnissen HTML-Markup hinzufügen
- Das Widget auf die Seite laden
- Widget initialisieren
Suchanwendung konfigurieren
Für jede Suchoberfläche muss in der Admin-Konsole eine Suchanwendung definiert werden. Die Anwendung enthält Abfrageeinstellungen wie Datenquellen, Facetten und Parameter für die Suchqualität.
Informationen zum Erstellen einer Suchanwendung finden Sie unter Benutzerdefinierte Suchfunktion erstellen.
Client-ID für die Anwendung generieren
Zusätzlich zu den Schritten in Zugriff auf die Cloud Search API konfigurieren, müssen Sie eine Client-ID für Ihre Webanwendung generieren.
Bei der Konfiguration des Projekts:
- Wählen Sie als Clienttyp Webbrowser aus.
- Geben Sie den Origin URI von Ihrer App an.
- Notieren Sie sich die Client-ID. Für das Widget ist kein Clientschlüssel erforderlich.
Weitere Informationen finden Sie unter OAuth 2.0 für clientseitige Web Anwendungen.
HTML-Markup hinzufügen
Für das Widget sind folgende HTML-Elemente erforderlich:
- Ein
input-Element für das Suchfeld - Ein Element, um das Dialogfeld für Vorschläge zu verankern
- Ein Element für Suchergebnisse
- Optional: Ein Element für Facet-Steuerelemente
In diesem Snippet werden Elemente anhand ihrer id-Attribute identifiziert:
Widget laden
Fügen Sie den Loader mit einem <script> Tag ein:
Geben Sie einen onload-Callback an. Wenn der Loader bereit ist, rufen Sie
gapi.load()
auf, um den API-Client, Google Log-in und die Cloud Search
Module zu laden.
Widget initialisieren
Initialisieren Sie die Clientbibliothek mit gapi.client.init() oder gapi.auth2.init() mit Ihrer Client-ID und dem Bereich https://www.googleapis.com/auth/cloud_search.query. Verwenden Sie die Builder-Klassen, um das Widget zu konfigurieren und zu verknüpfen.
Beispiel für die Initialisierung:
Konfigurationsvariablen:
Anmeldeverfahren anpassen
Das Widget fordert Nutzer auf, sich anzumelden, wenn sie mit der Eingabe beginnen. Mit Google Log-in für Websites können Sie das Verfahren anpassen.
Nutzer direkt autorisieren
Mit Über Google anmelden können Sie Anmeldestatus beobachten und verwalten.
In diesem Beispiel wird GoogleAuth.signIn() bei einem Klick auf eine Schaltfläche verwendet:
Nutzer automatisch anmelden
Autorisieren Sie die Anwendung vorab für Nutzer in Ihrer Organisation, um die Anmeldung zu vereinfachen. Dies ist auch mit Cloud Identity-Aware Proxy nützlich. Weitere Informationen Weitere Informationen Apps.
Oberfläche anpassen
Sie können die Darstellung des Widgets auf folgende Weise ändern:
- Stile mit CSS überschreiben
- Elemente mit einem Adapter dekorieren
- Benutzerdefinierte Elemente mit einem Adapter erstellen
Stile mit CSS überschreiben
Das Widget enthält eigenes CSS. Wenn Sie es überschreiben möchten, verwenden Sie Ancestor-Selektoren, um die Spezifität zu erhöhen:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Referenz zu unterstützten CSS Klassen
Elemente mit einem Adapter dekorieren
Erstellen und registrieren Sie einen Adapter, um Elemente vor dem Rendering zu ändern. In diesem Beispiel wird eine benutzerdefinierte CSS-Klasse hinzugefügt:
Registrieren Sie den Adapter während der Initialisierung:
Benutzerdefinierte Elemente mit einem Adapter erstellen
Implementieren Sie createSuggestionElement, createFacetResultElement oder createSearchResultElement, um benutzerdefinierte UI-Komponenten zu erstellen. In diesem Beispiel werden
HTML <template> Tags verwendet:
Registrieren Sie den Adapter:
Für benutzerdefinierte Facet-Elemente gelten folgende Regeln:
- Fügen Sie
cloudsearch_facet_bucket_clickablezu klickbaren Elementen hinzu. - Umschließen Sie jeden Bucket mit einem
cloudsearch_facet_bucket_container. - Behalten Sie die Bucket-Reihenfolge aus der Antwort bei.
Im folgenden Snippet werden Facetten beispielsweise mithilfe von Links anstelle von Kästchen dargestellt.
Suchverhalten anpassen
Überschreiben Sie die Einstellungen der Suchanwendung, indem Sie Anfragen mit einem Adapter abfangen.
Implementieren Sie interceptSearchRequest, um Anfragen vor der Ausführung zu ändern. In diesem Beispiel werden Abfragen auf eine ausgewählte Quelle beschränkt:
Registrieren Sie den Adapter:
Der folgende HTML-Code wird verwendet, um ein Auswahlfeld zum Filtern nach Quellen anzuzeigen:
Mit dem folgenden Code soll die Änderung erkannt, die Auswahl getroffen und die Abfrage falls nötig neu ausgeführt werden.
Sie können die Suchantwort auch abfangen, indem Sie
interceptSearchResponse
im Adapter implementieren.
Versionen anpinnen
- API-Version: Legen Sie
cloudsearch.config/apiVersionvor der Initialisierung fest. - Widget-Version: Verwenden Sie
gapi.config.update('cloudsearch.config/clientVersion', 1.1).
Wenn keine Version festgelegt ist, wird standardmäßig 1.0 verwendet.
So pinnen Sie das Widget beispielsweise an Version 1.1:
Suchoberfläche schützen
Beachten Sie die Best Practices für die Sicherheit von Webanwendungen, insbesondere um Clickjacking zu verhindern.
Debugging aktivieren
Verwenden Sie
interceptSearchRequest
um das Debugging zu aktivieren:
if (!request.requestOptions) {
request.requestOptions = {};
}
request.requestOptions.debugOptions = {enableDebugging: true};
return request;