Bei der Anfrageinterpretation in Cloud Search werden Operatoren und Filter in der Anfrage eines Nutzers automatisch in eine strukturierte, operatorbasierte Anfrage umgewandelt. Die Funktion verwendet im Schema definierte Operatoren und indexierte Dokumente, um die Suchabsicht abzuleiten. So können Nutzer mit minimalen Keywords suchen und präzise Ergebnisse erhalten.
Die Darstellung der Ergebnisse hängt vom Konfidenzniveau ab. Das Vertrauen steigt, wenn Suchanfragenstrings konsistent in bestimmten Schemafeldern erscheinen (z.B. „Tom Hanks“ in einem actors-Feld). Die Zuverlässigkeit sinkt, wenn Strings im allgemeinen Fließtext vorkommen. Bei hoher Konfidenz werden nur interpretierte Ergebnisse angezeigt, bei niedrigerer Konfidenz werden sie mit Standard-Keyword-Ergebnissen kombiniert.
Beispiel für die Interpretation einer Anfrage
Stellen Sie sich eine Datenbank mit Filminformationen vor. Abbildung 1 zeigt ein Beispiel für eine Suchanfrage und ihre Interpretation.
In diesem Beispiel wird die Anfrage so interpretiert:
- Bestimmt anhand des Schemas, dass Objekte der obersten Ebene
objecttype:moviessind. - Scannt Dokumente, um zu ermitteln, wo eine „Aktion“ stattfindet. Wenn es hauptsächlich in einem
genre-Feld vorkommt, steigt die Wahrscheinlichkeit, dass es sich um einen Attributwert für dieses Feld handelt.
Die resultierende Interpretation lautet:
actor:"tom hanks" genre:action objecttype:movies
Die Abfrageinterpretation erfolgt automatisch für alle Nutzer. Sie können sie jedoch optimieren, indem Sie Ihr Schema wie in den folgenden Abschnitten beschrieben strukturieren.
Schema für die Abfrageinterpretation strukturieren
Wenn Sie Ihr Schema optimieren, profitieren Sie von der Abfrageinterpretation.
Interpretationen von Anzeigenamen aktivieren
Bei der Abfrageinterpretation werden objectDefinitions und propertyDefinitions verwendet, um Abfragen zu interpretieren. Erstellen Sie intuitive Anzeigenamen mit displayLabel für Eigenschaften, objectDisplayLabel für Objekte und operatorName für Operatoren.
In diesem Beispiel sehen Sie intuitive Anzeigenamen für ein Filmobjekt:
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Diese Anzeigenamen ermöglichen Interpretationen wie:
- „action movies“ (Actionfilme) –>
genre:action object:movies - „Filme mit dem Genre Action oder Thriller“ –>
objecttype:movies genre:(action OR thriller) - „comedy category movies“ (Filme in der Kategorie „Comedy“) ->
genre:comedy objecttype:movies
Interpretation von Datumsangaben, Zahlen und Sortierungen aktivieren
Definieren Sie lessThanOperatorName und greaterThanOperatorName in IntegerOperatorOptions für alle Datums- und numerischen Properties. Setzen Sie isSortable, um die Sortierung zu aktivieren.
In diesem Beispiel werden folgende Optionen aktiviert:
{
"objectDefinitions": [{
"propertyDefinitions": [
{
"name": "runtime",
"isSortable": true,
"integerPropertyOptions": {
"operatorOptions": {
"operatorName": "runtime",
"lessThanOperatorName": "runtimelessthan",
"greaterThanOperatorName": "runtimegreaterthan"
}
}
},
{
"name": "releasedate",
"isSortable": true,
"datePropertyOptions": {
"operatorOptions": {
"operatorName": "releasedate",
"lessThanOperatorName": "releasedbefore",
"greaterThanOperatorName": "releasedafter"
}
}
}
]
}]
}
Diese Einstellungen ermöglichen Interpretationen wie:
- „Filme, die dieses Jahr veröffentlicht wurden“ –>
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - „movies with runtime less than 90“ (Filme mit einer Laufzeit von weniger als 90 Minuten) –>
objecttype:movies runtimelessthan:90
Reservierte Operatorinterpretation aktivieren
Verwenden Sie integrierte Operatoren wie type, before, after und objecttype:
- Füllen Sie
updateTimeinItemMetadataaus, umbeforeundafterzu verwenden. - Füllen Sie
mimeTypeinItemMetadatafür die automatische Erkennung aus. Beispiel: „action videos“ listet Dokumente mit Video-MIME-Typen auf.
Einschränkungen bei der Interpretation von Anfragen
- Funktioniert nur für diese Datenquellen-ACLs:
- Öffentlich in der Domain
- Die Datenquelle ist öffentlich.
- Die meisten Dokumente haben dieselbe geerbte ACL.
- Gemeinsame Operatornamen (z.B.
priorityundseverityverwenden beide eine niedrigere Konfidenz (0–3). - Standardmäßig werden bei der Interpretation Kleinbuchstaben für Feldwerte verwendet, sofern Sie nicht
exactMatchWithOperatorverwenden. - Der Operator
sourcewird nicht unterstützt. - Kombinierte Operator- und Freitextbegriffe (z.B. „p0 cases severity:s0“) werden nicht interpretiert.
- Die Ergebnisse werden immer mit nach Relevanz sortierten Ergebnissen kombiniert.