La fonctionnalité d'interprétation des requêtes de Cloud Search interprète automatiquement et filtres dans la requête de l'utilisateur, puis convertit ces éléments en structurée et basée sur un opérateur. L'interprétation de requête utilise les opérateurs définis dans le schéma, avec les documents indexés, pour déduire ce que de requête moyenne. Cette fonctionnalité permet aux utilisateurs d'effectuer des recherches avec un minimum des mots clés, tout en obtenant des résultats précis.
Les résultats réels présentés à l'utilisateur dépendent du niveau de confiance
de l'interprétation de la requête. La confiance dépend de
plusieurs facteurs,
y compris l'emplacement des chaînes de requête
dans les documents indexés. Une chaîne telle que
dans le nom de l'acteur "Tom Hanks", apparaître régulièrement dans un
de schéma appelé actors
a un niveau de confiance plus élevé. La même chaîne
("Tom Hanks") apparaissant dans un paragraphe, et non dans un champ de schéma, peut
entraîne une confiance plus faible. Si le niveau de confiance est élevé, seuls les résultats
de l'interprétation de la requête
sont présentées à l'utilisateur. Dans le cas des mots clés
le niveau de confiance, les résultats de l'interprétation de la requête sont combinés
dans les résultats de recherche par mot clé.
Exemple d'interprétation de requête
Supposons que vous ayez une source de données, telle qu'une base de données, contenant des informations sur les films. La figure 1 illustre un exemple de requête de recherche et le résultat obtenu. l'interprétation des résultats.
Pour cet exemple de requête, l'interprétation des requêtes effectue les opérations suivantes:
Analyse le schéma et détermine que les objets de premier niveau de la source de données sont classés dans la catégorie
objecttype:movies
. L'interprétation de requête sait maintenant "films" dans la requête est un type d'objet.Analyse les documents de la source de données, conjointement avec le schéma, pour déterminer où la chaîne "action" se produit. Si la chaîne apparaît principalement dans un "genre" spécifique source de données, puis l'interprétation de la requête a l’assurance que « action » est une valeur de propriété de la propriété "genre" ; comme défini dans le schéma. Si la chaîne apparaît principalement dans le contexte paragraphes de contenu, le niveau de confiance de l'interprétation de la requête diminue.
L'interprétation de la requête qui en résulte est la suivante:
actor:“tom hanks” genre:action objecttype:movies
L'interprétation des requêtes est automatiquement activée pour tous les clients Cloud Search sans effort supplémentaire. Cependant, pour une interprétation optimale des requêtes, structurez votre schéma en suivant les instructions de ce document.
Structurer votre schéma pour permettre l'interprétation des requêtes
Vous devez structurer votre schéma pour vous assurer vous pouvez bénéficier de l'interprétation des requêtes.
Activer l'interprétation des noms à afficher
L'interprétation des requêtes de Cloud Search utilise
objectDefinitions
et
propertyDefinitions
dans un schéma pour interpréter la requête d'un utilisateur et régler
résultats. Pour tirer pleinement parti de ces éléments de schéma, vous devez créer
des noms à afficher intuitifs
displayLabel
pour les noms de propriétés,
objectDisplayLabel
pour les noms d'objets et operatorName
pour les opérateurs.
Le schéma suivant illustre des noms à afficher intuitifs pour un objet "movie" :
{
"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"
}
},
...
]
}
]
}
Dans l'exemple précédent:
La définition de l'objet "movie" comporte un
objectDisplayLabel
"Film".La propriété PropertyDefinition du genre comporte un
operatorName
"genre" et une "Category".displayLabel
Ces noms à afficher permettent à Cloud Search d'effectuer la requête suivante interprétations:
- "films d'action", "films d'action d'un genre" ou "films d'action de genre cinématographique" sont
interprétée comme
genre:action object:movies
. - "films d'action ou de suspense" est interprété comme
objecttype:movies genre:(action OR thriller)
- "film d'action" ou "films d'action" est interprété comme
genre:action objecttype:movies
- "films de la catégorie comédie" est interprété comme
genre:comedy objecttype:movies
.
Activer les interprétations de dates, de nombres et de tri
Vous devez définir lessThanOperatorName
et greaterThanOperatorName
,
spécifié dans
IntegerOperatorOptions
, pour toutes les dates et
propriétés numériques. Ces paramètres activent la date et
les interprétations numériques. De plus, pour permettre le tri des interprétations,
définissez l'option isSortable
pour les propriétés de date et numériques. Les éléments suivants :
indique comment activer ces options.
{
"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"
}
}
}
]
}
]
}
Dans l'exemple précédent:
- La propriété numérique
runtime
fait référence à la durée d'un film. Laruntimelessthan
etruntimegreaterthan
sont définis pour cette propriété. - La propriété de date
releaseDate
fait référence à la sortie d'un film au cinémas. Les paramètresreleasedbefore
etreleasedafter
sont définis pour cette propriété.
Ces paramètres permettent à Cloud Search d'interpréter les requêtes suivantes:
- En supposant que l'année soit 2019, les "films sortis cette année" sont interprétés comme
objecttype: movies releasedafter:2019-1-1 releasedbefore:2019-12-31
- En partant du principe que la semaine est la troisième semaine de mars, "films sortis la semaine dernière" est
interprété comme
objecttype: movies releasedafter:2019-3-10 releasedbefore:2019-3-16
- "films d'une durée inférieure à 90 secondes" est interprété comme
objjecttype: movies runtimelessthan:90
. - En supposant que l’année soit 2019, « les films sortis cette année et leur durée supérieure à
120" est interprété comme
releasedafter:2019-1-1 releasedbefore:2019-12-31 objecttype:movies runtimegreaterthan:120
. - l'option "trier les films par date de sortie" permet de filtrer par "type d'objet: films" et les résultats présentés seraient triés par date de sortie avec l'ordre de tri par défaut dans l'ordre croissant.
Activer l'interprétation d'opérateurs réservés
Vous pouvez également utiliser les bibliothèques intégrées réservées type
, before
, after
et objecttype
pour améliorer l'interprétation des requêtes. Lors de l'indexation d'un document,
suivantes:
Renseignez le champ
updateTime
dansItemMetadata
utiliser les opérateursbefore
etafter
. Ces permettent à Cloud Search d'interpréter les requêtes suivantes:- "films de la semaine dernière" permet d'afficher tous les films mis à jour au cours de la de la semaine précédente.
- "films antérieurs à janvier 2019" permet d'afficher tous les films indexés avant le mois de janvier 2019. Janvier 2019
Renseignez le champ
mimeType
dansItemMetadata
pour utiliser la détection automatique de de mots clés. Une requête "vidéos d'action" énumérerait tous les documents de films d'action avec un MIME Type deapplication/mp4
,application/mpeg4
,application/x-shockwave-flash
video/
etapplication/vnd.google-apps.video
.
Limites concernant l'interprétation des requêtes
La fonctionnalité d'interprétation de requêtes présente les limites suivantes.
- L'interprétation des requêtes ne fonctionne que pour les LCA de sources de données suivantes:
<ph type="x-smartling-placeholder">
- </ph>
- Tous les documents sont publics au sein du domaine (accès par tous les utilisateurs du domaine).
- Tous les documents sont publics (toutes les personnes ayant accès à la source de données) LCA).
- La majorité des documents de la source de données ont la même LCA (tous les documents hérite de la LCA du même élément de conteneur) sans qu'aucun lecteur supplémentaire ne soit défini.
- Si plusieurs opérateurs de schéma ont la même valeur, l'interprétation de
la valeur d'un intent d'opérateur pour une requête dépend du niveau de confiance global
facteur renvoyé par le système d'interprétation des requêtes. Par exemple, supposons que vous
avoir les propriétés
priority
etseverity
avec les mêmes noms d'opérateurs ; définies dans le schéma. Supposons que les deux opérateurs puissent avoir les valeurs 0, 1, 2 ou 3. Dans cet exemple, "0" d'une requête peuvent faire référence à la valeur de l'opérateurpriority
ouseverity
. Ces valeurs sont ambiguës et le niveau de confiance est moins élevée. - Par défaut, l'interprétation des requêtes de Cloud Search réduit la casse du champ
lors de l'interprétation de la requête, à l'exception des opérateurs de texte définis avec
Options
exactMatchWithOperator
. - L'opérateur
source
n'est pas compatible avec les requêtes. - Les requêtes qui combinent des termes basés sur des opérateurs et des termes en texte libre ne sont pas est interprétée. Par exemple, la requête "p0 priority cases severity:s0" ne ferait pas car "cas prioritaires p0" est un terme en texte libre, tandis que "severity:s0" est un terme basé sur un opérateur.
- La stratégie d'interprétation des requêtes mélange toujours les résultats interprétés des résultats ordinaires (non interprétés, classés en fonction de la pertinence). Il n'effectue pas de de remplacement de la page des résultats.