L'interprétation des requêtes Cloud Search convertit automatiquement les opérateurs et les filtres d'une requête utilisateur en une requête structurée basée sur des opérateurs. Cette fonctionnalité utilise les opérateurs définis dans le schéma et les documents indexés pour déduire l'intention de la requête. Les utilisateurs peuvent ainsi effectuer des recherches avec un minimum de mots clés et obtenir des résultats précis.
La présentation des résultats dépend du niveau de confiance. Le niveau de confiance augmente lorsque les chaînes de requête apparaissent de manière cohérente dans des champs de schéma spécifiques (par exemple, "Tom Hanks" dans un champ actors). Le niveau de confiance diminue lorsque les chaînes apparaissent dans un texte général. Un niveau de confiance élevé n'affiche que les résultats interprétés, tandis qu'un niveau de confiance plus faible les combine avec les résultats de mots clés standards.
Exemple d'interprétation de requête
Prenons l'exemple d'une base de données contenant des informations sur des films. La figure 1 présente un exemple de requête de recherche et son interprétation.
Pour cet exemple, l'interprétation de la requête :
- détermine à partir du schéma que les objets de premier niveau sont
objecttype:movies; - analyse les documents pour identifier où apparaît le terme "action". S'il apparaît principalement dans un champ
genre, le niveau de confiance augmente, car il s'agit d'une valeur de propriété pour ce champ.
L'interprétation obtenue est la suivante :
actor:"tom hanks" genre:action objecttype:movies
L'interprétation des requêtes est automatique pour tous les utilisateurs, mais vous pouvez l'optimiser en structurant votre schéma comme décrit dans les sections suivantes.
Structurer votre schéma pour l'interprétation des requêtes
L'optimisation de votre schéma vous permet de bénéficier de l'interprétation des requêtes.
Activer les interprétations des noms à afficher
L'interprétation des requêtes utilise objectDefinitions et propertyDefinitions pour interpréter les requêtes. Créez des noms à afficher intuitifs à l'aide de
displayLabel
pour les propriétés,
objectDisplayLabel
pour les objets et operatorName pour les opérateurs.
Cet exemple montre des noms à afficher intuitifs pour un objet de film :
{
"objectDefinitions": [{
"name": "movie",
"options": {
"displayOptions": { "objectDisplayLabel": "Films" }
},
"propertyDefinitions": [{
"name": "genre",
"isReturnable": true,
"textPropertyOptions": {
"operatorOptions": { "operatorName": "genre" }
},
"displayOptions": { "displayLabel": "Category" }
}]
}]
}
Ces noms à afficher permettent des interprétations telles que :
- "action movies" ->
genre:action object:movies - "movies with genre action or thriller" ->
objecttype:movies genre:(action OR thriller) - "comedy category movies" ->
genre:comedy objecttype:movies
Activer les interprétations de dates, de nombres et de tris
Définissez lessThanOperatorName et greaterThanOperatorName dans
IntegerOperatorOptions
pour toutes les propriétés de date et numériques. Pour activer le tri, définissez isSortable.
Cet exemple active les options suivantes :
{
"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"
}
}
}
]
}]
}
Ces paramètres permettent des interprétations telles que :
- "movies released this year" ->
objecttype:movies releasedafter:2019-1-1 releasedbefore:2019-12-31 - "movies with runtime less than 90" ->
objecttype:movies runtimelessthan:90
Activer l'interprétation des opérateurs réservés
Utilisez des opérateurs intégrés tels que type, before, after, et objecttype :
- Renseignez
updateTimedansItemMetadatapour utiliserbeforeetafter. - Renseignez
mimeTypedansItemMetadatapour la détection automatique. Par exemple, "action videos" liste les documents avec des types MIME vidéo.
Limites de l'interprétation des requêtes
- Ne fonctionne que pour les LCA de source de données suivantes :
- Public dans le domaine.
- Public dans la source de données.
- La majorité des documents partagent la même LCA héritée.
- Les noms d'opérateurs partagés (par exemple,
priorityetseverityutilisant tous deux 0-3) réduisent le niveau de confiance. - Par défaut, l'interprétation utilise des minuscules pour les valeurs de champ, sauf si vous utilisez
exactMatchWithOperator. - L'opérateur
sourcen'est pas compatible. - Les termes combinés d'opérateur et de texte libre (par exemple, "p0 cases severity:s0") ne sont pas interprétés.
- Les résultats sont toujours combinés avec les résultats classés par pertinence.