Mit dem Such-Widget steht Ihnen eine anpassbare Suchoberfläche für Webanwendungen zur Verfügung. Für die Implementierung sind nur wenig HTML- und JavaScript-Code erforderlich und gängige Funktionen wie Facetten und Paginierung werden unterstützt. Sie können die Benutzeroberfläche auch mit CSS und JavaScript anpassen.
Wenn Sie mehr Flexibilität benötigen, verwenden Sie die Query API. Weitere Informationen zum Erstellen einer Suchoberfläche mit der Query API
Suchoberfläche erstellen
So erstellen Sie eine Suchoberfläche:
- Suchanwendung konfigurieren
- Generieren Sie eine Client-ID für die Anwendung.
- Fügen Sie dem Suchfeld und den Suchergebnissen HTML-Markup hinzu.
- Laden Sie das Widget auf die Seite.
- Initialisieren Sie das Widget.
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 Suche erstellen.
Client-ID für die Anwendung generieren
Zusätzlich zu den Schritten im Artikel Zugriff auf die Cloud Search API konfigurieren müssen Sie eine Client-ID für Ihre Webanwendung erstellen.
Bei der Konfiguration des Projekts sollten Sie Folgendes tun:
- Wählen Sie als Clienttyp Webbrowser aus.
- Geben Sie den Origin-URI 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 Webanwendungen.
HTML-Markup hinzufügen
Für das Widget sind die folgenden 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 die Steuerelemente für Facets.
In diesem Snippet werden Elemente anhand ihrer id-Attribute identifiziert:
Widget laden
Binden Sie den Loader mit einem <script>-Tag ein:
Einen onload-Callback bereitstellen. 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 binden.
Beispiel für die Initialisierung:
Konfigurationsvariablen:
Anmeldung anpassen
Nutzer werden vom Widget aufgefordert, sich anzumelden, sobald sie mit der Eingabe beginnen. Mithilfe von Über Google anmelden für Websites können Sie Ihren Nutzern eine individuellere Anmeldung anbieten.
Nutzer direkt autorisieren
Verwenden Sie Über Google anmelden, um Anmeldestatus zu überwachen und zu verwalten.
In diesem Beispiel wird GoogleAuth.signIn() bei einem Klick auf eine Schaltfläche verwendet:
Nutzer automatisch anmelden
Sie können die Anmeldung optimieren, indem Sie die Anwendung für Nutzer in Ihrer Organisation vorab autorisieren. Das ist auch bei Cloud Identity-Aware Proxy nützlich. Weitere Informationen finden Sie unter Google Log-in mit IT-Apps verwenden.
Schnittstelle anpassen
Sie können das Aussehen des Widgets ändern, indem Sie:
- Überschreiben von Stilen mit CSS.
- Elemente mit einem Adapter dekorieren
- Benutzerdefinierte Elemente mit einem Adapter erstellen
Stile mit CSS überschreiben
Das Widget enthält eigenes CSS. Wenn Sie sie überschreiben möchten, verwenden Sie Ancestor-Selektoren, um die Spezifität zu erhöhen:
#suggestions_anchor .cloudsearch_suggestion_container {
font-size: 14px;
}
Weitere Informationen finden Sie in der Referenz zu unterstützten CSS-Klassen.
Elemente mit einem Adapter dekorieren
Adapter erstellen und registrieren, um Elemente vor dem Rendern 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 die HTML-Tags <template> verwendet:
Registrieren Sie den Adapter:
Benutzerdefinierte Facettenelemente müssen die folgenden Regeln einhalten:
- Hängen Sie
cloudsearch_facet_bucket_clickablean anklickbare Elemente an. - Setzen Sie jede Klasse in ein
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
Sie können die Einstellungen der Suchanwendung überschreiben, 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 nicht festgelegt, sind beide standardmäßig auf 1,0 eingestellt.
So heften Sie das Widget beispielsweise an Version 1.1 an:
Suchoberfläche schützen
Befolgen 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;