Die Funktion zur Abfrageinterpretation von Cloud Search interpretiert die Operatoren und Filter in einer Nutzerabfrage automatisch und wandelt sie in eine strukturierte, operatorbasierte Abfrage um. Bei der Abfrageinterpretation werden im Schema definierte Operatoren zusammen mit den indexierten Dokumenten verwendet, um die Bedeutung der Suchanfrage des Nutzers zu ermitteln. Mit dieser Funktion können Nutzer mit wenigen Suchbegriffen nach präzisen Ergebnissen suchen.
Die tatsächlichen Ergebnisse, die dem Nutzer angezeigt werden, hängen von der Zuverlässigkeit der Abfrageinterpretation ab. Die Konfidenz basiert auf verschiedenen Faktoren, unter anderem darauf, wo die Abfragestrings in indexierten Dokumenten vorkommen. Wenn ein String wie der Name des Schauspielers „Tom Hanks“ konsistent in einem Schemafeld namens actors
erscheint, erhöht sich die Konfidenz. Derselbe String ("Tom Hanks") in einem Absatz statt eines Schemafelds kann zu einer geringeren Konfidenz führen. Bei einer hohen Konfidenz werden dem Nutzer nur Ergebnisse aus der Abfrageinterpretation angezeigt. Ist die Konfidenz geringer, werden die Ergebnisse der Abfrageinterpretation mit normalen Keyword-Suchergebnissen vermischt.
Beispiel für die Interpretation einer Abfrage
Angenommen, Sie haben eine Datenquelle wie eine Datenbank mit Informationen zu Filmen. Abbildung 1 zeigt ein Beispiel für eine Suchanfrage und die daraus resultierende Interpretation.
In dieser Beispielabfrage führt die Abfrageinterpretation folgende Schritte aus:
Parst das Schema und stellt fest, dass die Objekte der obersten Ebene in der Datenquelle als
objecttype:movies
klassifiziert werden. Bei der Abfrageinterpretation ist jetzt bekannt, dass „movies“ in der Abfrage ein Objekttyp ist.Sie scannt Dokumente in der Datenquelle in Verbindung mit dem Schema, um festzustellen, wo der String "Aktion" auftritt. Wenn der String hauptsächlich in einem bestimmten Datenquellenfeld des Typs "genre" vorkommt, ist die Abfrageinterpretation die Konfidenz, dass "action" ein Attributwert für das Attribut "genre" ist, wie im Schema definiert. Tritt der String hauptsächlich im Kontext von Inhaltsabsätzen auf, nimmt das Konfidenzniveau der Abfrageinterpretation ab.
Die resultierende Abfrageinterpretation lautet:
actor:“tom hanks” genre:action objecttype:movies
Die Abfrageinterpretation wird automatisch und ohne zusätzlichen Aufwand für alle Cloud Search-Kunden aktiviert. Für eine optimale Abfrageinterpretation sollten Sie das Schema jedoch gemäß der Anleitung in diesem Dokument strukturieren.
Das Schema strukturieren, um die Abfrageinterpretation zu unterstützen
Sie sollten Ihr Schema so strukturieren, dass Sie von der Abfrageinterpretation profitieren können.
Interpretationen von Anzeigenamen aktivieren
Bei der Abfrageinterpretation in Cloud Search werden objectDefinitions
und propertyDefinitions
in einem Schema verwendet, um die Abfrage eines Nutzers zu interpretieren und die Ergebnisse zu optimieren. Damit Sie die Vorteile dieser Schemaelemente voll ausschöpfen können, sollten Sie intuitive Anzeigenamen mit displayLabel
für Attributnamen, 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 Definition des Filmobjekts enthält einen „Film“-
objectDisplayLabel
.Die propertyDefinition „genre“ hat ein „genre“
operatorName
und eine „Category“displayLabel
.
Mithilfe dieser Anzeigenamen kann Cloud Search die folgenden Abfrageinterpretationen vornehmen:
- „Actionfilme“, „Genre-Action-Filme“ oder „Film-Genre-Action“ werden als
genre:action object:movies
interpretiert. - „Filme mit Action oder Thriller“ wird als
objecttype:movies genre:(action OR thriller)
interpretiert. - "Actionfilm" oder "Actionfilme" wird als
genre:action objecttype:movies
interpretiert. - „Comedy-Kategorie Filme“ wird als
genre:comedy objecttype:movies
interpretiert.
Interpretationen für Datum, numerische Werte und Sortierung aktivieren
Definieren Sie lessThanOperatorName
und greaterThanOperatorName
, die in IntegerOperatorOptions
angegeben sind, für alle Datums- und numerischen Attribute. Mit diesen Einstellungen wird die automatische Interpretation von Datum und Ziffern ermöglicht. Damit die Interpretation der Sortierung möglich ist, legen Sie außerdem die Option isSortable
für Datums- und numerische Attribute fest. Das folgende Schema zeigt, wie diese Optionen aktiviert werden.
{
"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 Eigenschaft
runtime
bezieht sich auf die Länge eines Films. Für dieses Attribut sindruntimelessthan
undruntimegreaterthan
festgelegt. - Die Datumseigenschaft
releaseDate
gibt an, wann ein Film in den Kinos veröffentlicht wird. Für dieses Attribut sindreleasedbefore
undreleasedafter
festgelegt.
Mit diesen Einstellungen kann Cloud Search die folgenden Abfragen interpretieren:
- Wenn das Jahr 2019 ist, werden „In diesem Jahr veröffentlichte Filme“ als
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
interpretiert. - Wenn es sich um die dritte Woche im März handelt, werden „der letzten Woche veröffentlichte Filme“ 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, „Filme, die in diesem Jahr veröffentlicht wurden und länger als 120 Jahre dauern“ werden als
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
interpretiert. - Mit „filmen nach Veröffentlichungsdatum sortieren“ würde nach „objecttype: movies“ gefiltert. Die Ergebnisse werden dann nach dem Veröffentlichungsdatum sortiert. Die Standardsortierreihenfolge ist dabei aufsteigend.
Interpretation reservierter Operatoren aktivieren
Sie können auch die reservierten integrierten Operatoren type
, before
, after
und objecttype
verwenden, um die Abfrageinterpretation 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 Abfrageinterpretationen vornehmen:- Mit "Filme aus letzter Woche" werden alle Filme aufgelistet, die in der vorherigen Woche im Index aktualisiert wurden.
- Mit der Option "Filme vor Januar 2019" werden alle Filme aufgelistet, die vor Januar 2019 indexiert wurden.
Füllen Sie das Feld
mimeType
inItemMetadata
aus, um die automatische Typerkennung zu verwenden. Mit der Abfrage „Actionvideos“ werden alle Aktionsfilmdokumente 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 Interpretation von Abfragen gelten die folgenden Einschränkungen.
- Die Abfrageinterpretation funktioniert nur für die folgenden Datenquellen-ACLs:
- Alle Dokumente sind in der Domain öffentlich, d. h., jeder Nutzer in der Domain hat Zugriff.
- Alle Dokumente sind öffentlich zugänglich, d. h. jeder, der Zugriff auf die Datenquellen-ACL hat.
- Die Mehrheit der Dokumente in der Datenquelle hat dieselbe ACL (alle Dokumente übernehmen die ACL von demselben Containerelement), ohne zusätzliche Leser definiert zu haben.
- Wenn mehrere Schemaoperatoren denselben Wert haben, hängt die Interpretation dieses Werts in einem Operator-Intent für eine Abfrage vom Konfidenzfaktor insgesamt ab, der vom Abfrageinterpretationssystem 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 Abfrage auf den Operatorwert fürpriority
oderseverity
beziehen. Diese Werte sind mehrdeutig und das Konfidenzniveau ist niedriger. - Standardmäßig senkt die Cloud Search-Abfrageinterpretation die Groß-/Kleinschreibung von Feldwerten beim Interpretieren der Abfrage. Hiervon ausgenommen sind Textoperatoren, die mit
exactMatchWithOperator
-Optionen definiert wurden. - Der Operator
source
wird in Abfragen nicht unterstützt. - Abfragen, in denen operatorbasierte Begriffe und kostenlose Textbegriffe kombiniert werden, werden nicht interpretiert. So wird beispielsweise die Abfrage "p0 Priority cases severity:s0" nicht unterstützt, da "p0 Priority cases" (Fälle mit Priorität P0) ein kostenloser Textbegriff ist, während "severity:s0" ein operatorbasierter Begriff ist.
- Bei der Strategie der Abfrageinterpretation werden die interpretierten Ergebnisse immer mit normalen (nicht interpretierten, nach Relevanz bewerteten) Ergebnissen zusammengeführt. Die Ergebnisse werden nicht ganzseitig ersetzt.