Die Query API bietet Ihnen Zugriff auf Methoden für Suchanfragen und Vorschläge, mit denen Sie eine Suchoberfläche erstellen oder mit denen Suchergebnisse in eine Anwendung eingebettet werden können.
Für Webanwendungen mit minimalen Anforderungen können Sie das Such-Widget verwenden. Weitere Informationen finden Sie unter Mit dem Such-Widget eine Suchoberfläche erstellen.
Suchoberfläche erstellen
So erstellen Sie eine einfache Suchoberfläche:
- Suchanwendung konfigurieren
- OAuth-Anmeldedaten für die Anwendung generieren
- Index abfragen
- Sehen Sie sich die Abfrageergebnisse an.
Sie können die Oberfläche mit Funktionen wie Paginieren, Sortieren, Filtern, Facetten und automatischer Vervollständigung optimieren.
Suchanwendung konfigurieren
Sie müssen für jede Suchoberfläche mindestens eine Suchanwendung erstellen. Eine Suchanwendung stellt Standardparameter wie Datenquellen, Sortierreihenfolge, Filter und Facetten bereit. Sie können diese Parameter mit der Query API überschreiben.
Die Anzahl der in einer Abfrage verwendeten Datenquellen lässt sich nur auf die in der Suchanwendung konfigurierte Zahl erhöhen – nicht darüber hinaus. Mit dataSourceRestrictions können Sie eine Abfrage auf eine Teilmenge dieser Quellen beschränken.
Weitere Informationen finden Sie unter Suchanwendungen anpassen.
OAuth-Anmeldedaten für die Anwendung generieren
Zusätzlich zu den Schritten im Artikel Zugriff auf die Cloud Search API konfigurieren müssen Sie auch OAuth-Anmeldedaten für Ihre Webanwendung generieren.
Fordern Sie mithilfe der Anmeldedaten im Namen der Nutzer die Autorisierung an. Verwenden Sie den Bereich https://www.googleapis.com/auth/cloud_search.query.
Weitere Informationen zu OAuth-Optionen finden Sie auf der Google Identity Platform.
Index abfragen
Verwenden Sie die Methode search, um den Index zu durchsuchen.
Jede Anfrage muss einen Text-query und einen searchApplicationId enthalten.
In diesem Beispiel wird eine Filmdatenquelle abgefragt:
{
"query": "titanic",
"requestOptions": {
"searchApplicationId": "searchapplications/<search_app_id>"
}
}
Abfrageergebnisse anzeigen
In Suchoberflächen sollten das Element title und ein Link zum ursprünglichen Element angezeigt werden. Sie können auch Snippets und Metadaten verwenden, um die Darstellung zu verbessern.
Zusätzliche Ergebnisse verarbeiten
Cloud Search gibt zusätzliche Ergebnisse zurück, wenn es nicht genügend Übereinstimmungen für eine Anfrage gibt. Dies wird durch das Feld queryInterpretation angegeben. Wenn nur ergänzende Ergebnisse zurückgegeben werden, ist InterpretationType gleich REPLACE. Wenn sie zusammengefasst sind, ist es BLEND.
Wenn Sie zusätzliche Ergebnisse zurückgeben, sollten Sie den Nutzer darüber informieren. Für a
REPLACE könnten Sie Folgendes sagen: „Ihre Suche ergab keine Treffer. Es werden Ergebnisse für ähnliche Anfragen angezeigt.“
Ergebnisse für Personen verarbeiten
Mit der Funktion „Personensuche“ gibt Cloud Search Dokumente zurück, die sich auf Personen und Mitarbeiterinformationen beziehen. Die Ergebnisse werden im Feld structuredResults angezeigt:
{
"results": [...],
"structuredResults": [{
"person": {...}
}]
}
Abgleich direkt unterstellter Mitarbeiter
Mit der Funktion „Direkt unterstellte Mitarbeiter abgleichen“ können Nutzer die direkt unterstellten Mitarbeiter einer Person sehen. Die Antwort enthält ein assistCardProtoHolder mit einem cardType von RELATED_PEOPLE_ANSWER_CARD.
Optimierungen deaktivieren
Optimierungen wie zusätzliche Ergebnisse sind standardmäßig aktiviert. So können Sie sie deaktivieren:
- Suchanwendungsebene: Legen Sie
force_verbatim_modeauftruefest. - Abfrageebene: Legen Sie
enableVerbatimModeauftruefest.
Snippets markieren
Cloud Search gibt ein Snippet für indexierten Text oder HTML zurück. Wenn Suchbegriffe vorhanden sind, wird ihr Standort durch matchRanges angegeben. Verwenden Sie diese Bereiche, um Text hervorzuheben.
function highlightSnippet(snippet) {
let text = snippet.snippet;
let formattedText = text;
if (snippet.matchRanges) {
let parts = [];
let index = 0;
for (let match of snippet.matchRanges) {
let start = match.start || 0; // Default to 0 if omitted
let end = match.end;
if (index < start) { // Include any leading text before/between ranges
parts.push(text.slice(index, start));
}
parts.push('<span class="highlight">');
parts.push(text.slice(start, end));
parts.push('</span>');
index = end;
}
parts.push(text.slice(index)); // Include any trailing text after last range
formattedText = parts.join('');
}
return formattedText;
}
Bei folgendem Snippet…
{
"snippet": "This is an example snippet...",
"matchRanges": [
{
"start": 11,
"end": 18
}
]
}
…lautet der resultierende HTML-String:
This is an <span class="highlight">example</span> snippet...
Angezeigte Metadaten
Verwenden Sie das Feld metadata für Informationen wie createTime, updateTime und strukturierte Daten.
Verwenden Sie displayOptions, um strukturierte Daten zu präsentieren.
Zusätzliche Ergebnisse abrufen
Wenn Sie weitere Ergebnisse abrufen möchten, legen Sie das Feld start auf den ausgewählten Offset fest. Passen Sie die Seitengröße mit pageSize an. Verwenden Sie resultCount, um die Gesamtzahl der Elemente oder geschätzte Werte anzuzeigen.
Ergebnisse sortieren
Verwenden Sie sortOptions, um die Reihenfolge anzugeben:
operatorName: Die Property, nach der sortiert werden soll.sortOrder:ASCENDINGoderDESCENDING.
Die Relevanz ist der Standard- und sekundäre Sortierschlüssel.
Filter hinzufügen
Ergebnisse mit Filtern in der Suchanwendung oder Anfrage einschränken Wenn in beiden Filtern Filter für eine Quelle angegeben sind, muss die Prüfung gegen beide "true" ergeben.
Filter in dataSourceRestrictions.filterOptions[] anwenden
Primäre Filtertypen:
- Objektfilter: Damit können Sie die Übereinstimmungen auf einen bestimmten Typ beschränken.
- Wertefilter: Hiermit werden Übereinstimmungen auf Grundlage eines Operators und eines Werts eingeschränkt.
Zusammengesetzte Filter kombinieren mehrere Wertfilter.
Ergebnisse mithilfe von Facetten verfeinern
Mithilfe von Facetten können Nutzer Abfragen interaktiv verfeinern. Wenn Sie Facetten anfordern, werden in Cloud Search die häufigsten Werte für diese Attribute berechnet.
Typisches Muster: 1. Abfrage, in der die Facettenattribute angegeben werden. 1. Sie rendern die Such- und Attributergebnisse. 1. Der Nutzer wählt Facettenwerte aus. 1. Wiederholen Sie die Abfrage mit einem Filter, der auf den Auswahlmöglichkeiten basiert.
Attributergebnisse mit ganzzahligen Feldern
Markieren Sie eine Ganzzahleigenschaft als facettierbar, um die Ergebnisse nach Bereichen zu filtern (z.B.
„100–200“ Seiten). Legen Sie isFacetable auf true fest und definieren Sie Standardoptionen für die Aufteilung in Gruppen im Schema.
Attributergebnisse nach Dokumentgröße oder Datum aufschlüsseln
Reservierte Operatoren verwenden:
itemsize: für die Dateigröße in Byte.createddatetimestamp: für das Erstellungsdatum.lastmodified: für das Änderungsdatum.
Vorschläge hinzufügen
Mit der Suggest API können Sie eine automatische Vervollständigung von Abfragen implementieren. Die Vorschläge werden auf Grundlage des Abfrageverlaufs, der Kontakte und des Dokumentinhalts gemacht.