Implémenter la saisie semi-automatique

La saisie semi-automatique de la recherche dans le Cloud aide un utilisateur en suggérant des mots lorsqu’il saisit une requête de recherche. Les suggestions peuvent être des mots provenant de titres de documents, d’opérateurs de recherche, de valeurs d’opérateurs de recherche, de noms et d’e-mails provenant du domaine d’espace de travail Google, etc.

La saisie semi-automatique extrait les phrases des titres des documents indexés et en utilisant un modèle n-gramme, détermine les suggestions à servir à l’aide de l’API Suggest. Par exemple, disons que nous avons la source de données suivante contenant des données sur les films:

  • La source de données contient 2 documents.
  • Chaque document a un titre (ItemMetadata.title) et deux propriétés : genre et characters.
  • Le premier document s’intitule « Avengers Infinity War” avec genre=science fiction et characters=Iron Man, Hulk
  • Le second document s’intitule « Harry Potter » avec genre=Adventure, Fantasyandcharacters=Hermione, Harry Potter`

La figure 1 illustre la façon dont le premier document s’intitule « Avengers Infinity War ». les suggestions de saisie semi-automatique sont extraites des titres, des propriétés et des valeurs des propriétés du document.

Deux documents et le ngram résultant
Figure 1. Deux documents et le n-gramme résultant utilisés pour la saisie semi-automatique

À partir du document 1, nous extrayons les ngrammes (jusqu’aux trigrammes) « Avengers”, « Infinity”, « War”, « Avengers Infinity”, « Infinity War”, « Avengers Infinity War. »De même à partir du document 2, nous générons « Harry », « Potter”, « Harry Potter ».

Lors de l’interrogation de cette source de données, supposons que l’utilisateur commence par taper « h ». Les suggestions affichées à l’utilisateur seraient:

  • Harry
  • Hermione
  • Hulk
  • Harry Potter

Disons que l’utilisateur sélectionne la suggestion de saisie semi-automatique « Hermione” et le coup suivant de l’utilisateur est le caractère « a ». Les suggestions de saisie semi-automatique montrées à l’utilisateur seraient:

  • Aventure Hermione
  • Action Hermione
  • Avengers Hermione
  • /li>

La saisie semi-automatique de Cloud Search renvoie un maximum de 5 suggestions de documentcontent et de 2 suggestions de personnes.

Par défaut, les phrases des titres du document sont affichées en saisie semi-automatique. Les propriétés Schemaproperties doivent être explicitement marquées comme is_suggestable pour que l’API suggest puisse compléter le nom et les valeurs de propriété correspondants.

Intégration avec l’API de saisie semi-automatique

Si vous utilisez l’application de recherche par défaut ou le searchwidget intégrable, la fonction de saisie semi-automatique de Cloud Search est prise en charge nativement sans aucun travail supplémentaire. N’oubliez pas que, par défaut, les phrases des titres du document sont montrées dans la saisie semi-automatique. Les propriétés de schéma doivent être explicitement marquées comme is_suggestable pour que l’API suggest remplisse automatiquement le nom et les valeurs de propriété correspondants.

Si vous créez une application de recherche personnalisée, la saisie automatique est disponible en interrogeant les points de terminaison de l’API /query/suggest.

Limitations

La saisie semi-automatique a les limitations suivantes :

  • La restriction des phrases de saisie semi-automatique de Cloud Search à l’aide du FilterOptions défini dans le schéma n’est pas prise en charge, à l’exception des infiltrations intégrées suivantes: objectypemimetype, et tapez les filtres.

  • Les suggestions basées sur l’historique des requêtes (recherches effectuées par l’utilisateur précédemment dans une application de recherche) ne sont pas prises en charge

  • Un maximum de 20 propriétés peuvent être marquées comme is_suggestable. Cette limite peut être augmentée en contactant le support Cloud Search.

  • La saisie semi-automatique de l’opérateur de recherche n’est pas disponible pour les propriétés avec exact_match_with_operator.



Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.