Die Funktion Suchanfrage interpretieren in Cloud Search interpretiert automatisch die Operatoren und Filter in der Suchanfrage eines Nutzers und wandelt diese Elemente in eine strukturierte, operatorbasierte Suchanfrage um. Bei der Interpretation von Anfragen werden Operatoren verwendet, die im Schema definiert sind, sowie die indexierten Dokumente, um die Bedeutung der Nutzeranfrage zu ermitteln. Mit dieser Funktion können Nutzer mit minimalen Keywords suchen und trotzdem präzise Ergebnisse erhalten.
Die tatsächlichen Ergebnisse, die dem Nutzer präsentiert werden, hängen vom Vertrauen in die Interpretation der Anfrage ab. Die Konfidenz basiert auf mehreren Faktoren, unter anderem darauf, wo die Suchanfrage-Strings in indexierten Dokumenten erscheinen. Wenn ein String wie der Name des Schauspielers „Tom Hanks“ konsistent in einem Schemabereich namens actors
vorkommt, führt das zu einem höheren Konfidenzwert. Wenn derselbe String („Tom Hanks“) in einem Absatz statt in einem Schemabereich vorkommt, kann dies zu einer geringeren Konfidenz führen. Bei hoher Konfidenz werden dem Nutzer nur Ergebnisse aus der Abfrageinterpretation angezeigt. Bei geringerer Zuverlässigkeit werden die Ergebnisse der Anfrageninterpretation mit normalen Keyword-Suchergebnissen kombiniert.
Beispiel für die Interpretation einer Anfrage
Angenommen, Sie haben eine Datenquelle, z. B. eine Datenbank, die Informationen zu Filmen enthält. Abbildung 1 zeigt eine Beispielsuchanfrage und die entsprechende Interpretation.

Bei dieser Beispielabfrage wird Folgendes ausgeführt:
Das Schema wird analysiert und es wird festgestellt, dass die Objekte der obersten Ebene in der Datenquelle als
objecttype:movies
klassifiziert werden. Die Abfrageinterpretation weiß jetzt, dass „Filme“ in der Anfrage ein Objekttyp ist.Durchsucht Dokumente in der Datenquelle in Verbindung mit dem Schema, um festzustellen, wo der String „action“ vorkommt. Wenn der String hauptsächlich in einem bestimmten Datenquellenfeld für das Genre vorkommt, ist die Abfrageinterpretation zuversichtlich, dass „action“ ein Attributwert für das Attribut „genre“ ist, wie im Schema definiert. Wenn der String hauptsächlich im Kontext von Absätzen mit Inhalten vorkommt, sinkt das Konfidenzniveau der Abfrageinterpretation.
Die resultierende Abfrageinterpretation lautet:
actor:“tom hanks” genre:action objecttype:movies
Die Suchanfrage-Interpretation ist für alle Cloud Search-Kunden automatisch aktiviert. Für eine optimale Interpretation von Anfragen sollten Sie Ihr Schema jedoch gemäß der Anleitung in diesem Dokument strukturieren.
Schema so strukturieren, dass die Interpretation von Anfragen unterstützt wird
Sie sollten Ihr Schema so strukturieren, dass Sie von der Abfrageinterpretation profitieren können.
Interpretationen von Anzeigenamen aktivieren
Bei der Interpretation von Cloud Search-Anfragen werden die objectDefinitions
und propertyDefinitions
in einem Schema verwendet, um die Anfrage eines Nutzers zu interpretieren und die Ergebnisse zu optimieren. Um den Nutzen dieser Schemaelemente zu maximieren, sollten Sie intuitive Anzeigenamen mit displayLabel
für Eigenschaftsnamen, objectDisplayLabel
für Objektnamen und operatorName
für Operatoren erstellen.
Das folgende Schema zeigt intuitive Anzeigenamen für ein Filmobjekt:
{
"objectDefinitions": [
{
"name": "movie",
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
...
},
"propertyDefinitions": [
{
"name": "genre",
"isReturnable": true,
"isRepeatable": true,
"isFacetable": true,
"textPropertyOptions": {
"retrievalImportance": { "importance": "HIGHEST" },
"operatorOptions": {
"operatorName": "genre"
}
},
"displayOptions": {
"displayLabel": "Category"
}
},
...
]
}
]
}
Im vorherigen Beispiel gilt:
Die Filmobjektdefinition enthält ein
objectDisplayLabel
für „Film“.Die genre-PropertyDefinition hat ein „genre“
operatorName
und eine „Category“displayLabel
.
Diese Anzeigenamen ermöglichen Cloud Search die folgenden Interpretationen von Anfragen:
- „Actionfilme“, „Filme vom Typ Action“ oder „Filme Genre Action“ werden als
genre:action object:movies
interpretiert. - „Filme mit dem Genre ‚Action‘ oder ‚Thriller‘“ wird als
objecttype:movies genre:(action OR thriller)
interpretiert. - „Actionfilm“ oder „Actionfilme“ wird als
genre:action objecttype:movies
interpretiert. - „comedy category movies“ wird als
genre:comedy objecttype:movies
interpretiert.
Interpretation von Datumsangaben, Zahlen und Sortierungen aktivieren
Sie sollten die in IntegerOperatorOptions
angegebenen Attribute lessThanOperatorName
und greaterThanOperatorName
für alle Datums- und numerischen Attribute definieren. Diese Einstellungen ermöglichen die automatische Interpretation von Datumsangaben und Zahlen. Wenn Sie Sortierinterpretationen aktivieren möchten, legen Sie die Option isSortable
für Datums- und numerische Properties fest. Das folgende Schema zeigt, wie Sie diese Optionen aktivieren.
{
"objectDefinitions": [
{
"options": {
"displayOptions": {
"objectDisplayLabel": "Films"
}
},
"propertyDefinitions": [
{
"name": "runtime",
"isReturnable": true,
"isSortable": true,
"integerPropertyOptions": {
"orderedRanking": "DESCENDING",
"minimumValue": {
"value": 10
},
"maximumValue": {
"value": 500
},
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
},
"displayOptions": {
"displayLabel": "Length"
}
},
{
"name": "releasedate",
"isReturnable": true,
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}
]
}
Im vorherigen Beispiel gilt:
- Die numerische Property
runtime
bezieht sich auf die Länge eines Films. Die Werteruntimelessthan
undruntimegreaterthan
sind für diese Property festgelegt. - Das Datum-Attribut
releaseDate
bezieht sich auf das Datum, an dem ein Film im Kino veröffentlicht wird. Diereleasedbefore
undreleasedafter
sind für diese Property festgelegt.
Mit diesen Einstellungen kann Cloud Search die folgenden Abfragen interpretieren:
- Wenn wir davon ausgehen, dass das Jahr 2019 ist, wird „Filme, die dieses Jahr veröffentlicht wurden“ als
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
interpretiert. - Angenommen, es ist die dritte Woche im März. Dann wird „Filme, die letzte Woche veröffentlicht wurden“ als
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
interpretiert. - „Filme mit einer Laufzeit von weniger als 90“ wird als
objjecttype: movies runtimelessthan:90
interpretiert. - Angenommen, das Jahr ist 2019. Dann wird „Filme, die dieses Jahr veröffentlicht wurden und länger als 120 Minuten sind“ als
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
interpretiert. - Bei „Filme nach Veröffentlichungsdatum sortieren“ wird nach „objecttype: movies“ gefiltert und die Ergebnisse werden nach dem Veröffentlichungsdatum sortiert. Die Standardsortierreihenfolge ist aufsteigend.
Reservierte Operatorinterpretation aktivieren
Sie können auch die reservierten integrierten Operatoren type
, before
, after
und objecttype
verwenden, um die Interpretation von Anfragen zu verbessern. Gehen Sie beim Indexieren eines Dokuments so vor:
Füllen Sie das Feld
updateTime
inItemMetadata
aus, um die Operatorenbefore
undafter
zu verwenden. Mit diesen Einstellungen kann Cloud Search die folgenden Suchanfragen interpretieren:- „Filme aus der letzten Woche“ würde alle Filme auflisten, die in der Vorwoche im Index aktualisiert wurden.
- „Filme vor Januar 2019“ listet alle Filme auf, die vor Januar 2019 indexiert wurden.
Füllen Sie das Feld
mimeType
inItemMetadata
aus, um die automatische Erkennung des Typs zu verwenden. Bei der Anfrage „action videos“ werden alle Actionfilmdokumente mit dem MIME-Typapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
,video/
undapplication/vnd.google-apps.video
aufgelistet.
Einschränkungen bei der Abfrageinterpretation
Für die Funktion zur Abfrageinterpretation gelten die folgenden Einschränkungen.
- Die Abfrageinterpretation funktioniert nur für die folgenden ACLs für Datenquellen:
- Alle Dokumente sind für die Domain öffentlich (jeder in der Domain kann darauf zugreifen).
- Alle Dokumente sind öffentlich für die Datenquelle (jeder, der Zugriff auf die ACL der Datenquelle hat).
- Die meisten Dokumente in der Datenquelle haben dieselbe ACL (alle Dokumente übernehmen die ACL vom selben Container-Element) und es sind keine zusätzlichen Leser definiert.
- Wenn mehrere Schemaoperatoren denselben Wert haben, hängt die Interpretation dieses Werts in Bezug auf die Absicht eines Operators für eine Anfrage vom gesamten Vertrauensfaktor ab, der vom System zur Interpretation von Anfragen zurückgegeben wird. Angenommen, Sie haben die Attribute
priority
undseverity
mit denselben Operatornamen, die im Schema definiert sind. Angenommen, beide Operatoren können die Werte 0, 1, 2 oder 3 haben. In diesem Beispiel kann sich „0“ in einer Anfrage auf den Operatorwert fürpriority
oderseverity
beziehen. Diese Werte sind mehrdeutig und das Konfidenzniveau ist niedriger. - Standardmäßig wird bei der Abfrageinterpretation in Cloud Search die Groß-/Kleinschreibung von Feldwerten nicht berücksichtigt, außer bei Textoperatoren, die mit
exactMatchWithOperator
-Optionen definiert sind. - Der Operator
source
wird in Abfragen nicht unterstützt. - Abfragen, in denen operatorbasierte Begriffe und Freitextbegriffe kombiniert werden, werden nicht interpretiert. Die Anfrage „p0 priority cases severity:s0“ wird beispielsweise nicht unterstützt, da „p0 priority cases“ ein Freitextbegriff ist, während „severity:s0“ ein operatorbasierter Begriff ist.
- Bei der Strategie zur Abfrageinterpretation werden die interpretierten Ergebnisse immer mit normalen (nicht interpretierten, nach Relevanz sortierten) Ergebnissen kombiniert. Es werden nicht alle Ergebnisse auf einer Seite ersetzt.