Choix de la bonne solution de recherche
Objectifs de formation
Une fois cette unité terminée, vous pourrez :
- Expliquer dans quelles circonstances créer une solution de recherche personnalisée.
- Présenter les différences entre SOSL et SOQL.
- Identifier les protocoles d’API disponible pour effectuer des recherches.
La recherche selon Salesforce
Savez-vous quelle est la fonctionnalité de Salesforce la plus utilisée ? Si vous avez dit « la recherche », vous avez tout juste. Lorsque les utilisateurs veulent trouver l’enregistrement dont ils ont besoin parmi des milliers d’autres données, c’est vers la fonctionnalité de recherche qu’ils se tournent.
Dans ce module Trailhead, vous allez découvrir le fonctionnement de la recherche Salesforce et apprendre à déterminer si vous avez besoin d’une solution de recherche personnalisée. Vous allez également apprendre à rapidement mettre en place (ou reconstruire) une solution personnalisée à l’aide de l’API Salesforce pour certains cas d’utilisation courants. Enfin, vous allez apprendre à optimiser les requêtes de recherche pour obtenir des résultats plus ciblés et plus pertinents. Pour résumer, vous allez repartir en comprenant parfaitement ce qu’est la recherche et comment elle peut soutenir la productivité des utilisateurs.
Pour commencer, voyons comment fonctionne la recherche en général.
Tous les enregistrements sont stockés sous la forme de champs de données dans la base de l’organisation. Quand vous mettez à jour ou créez un enregistrement, le moteur de recherche arrive, fait une copie des données et divise le contenu en morceaux plus petits appelés jetons. Nous stockons ces jetons dans un index de recherche, accompagnés d'un lien vers l’enregistrement d'origine.
Du point de vue de l’utilisateur, le processus de recherche est semblable à la création d'un enregistrement. Lorsque l’utilisateur saisit un terme dans le champ de recherche (1), le moteur de recherche le divise en jetons (2). Il associe ces jetons aux informations d’enregistrement stockées dans l’index de recherche (3), classe les enregistrements associés par pertinence (4) et renvoie les résultats auxquels les utilisateurs ont accès (5).
Prenons un moment pour examiner l’index de recherche. Pourquoi se donner la peine de créer des jetons quand on pourrait faire une recherche dans la base de données de l’organisation ? L’index de recherche sait en fait très bien quels résultats renvoyer à l’utilisateur.
L’index de recherche et les jetons permettent au moteur de recherche d'appliquer des fonctions avancées comme la correction orthographique, les surnoms, la lemmatisation et des groupes de synonymes. Grâce à tout cela, nous pouvons présenter des enregistrements qui incluent des variantes du terme de recherche de l’utilisateur afin d’élargir les résultats. (Et si vous vous posiez la question, la lemmatisation n’a rien à voir avec les lemmings. Il s’agit plutôt d’une méthode permettant d’identifier et de renvoyer des variantes du terme de recherche, par exemple ajout, ajouter et ajouté, dans les résultats de la recherche.)
L’index de recherche vous donne également la possibilité d’introduire un classement de pertinence dans la préparation. La fonctionnalité de recherche emploie ce dernier pour trouver et classer les enregistrements recherchés par les utilisateurs. Sur quoi s’appuie donc ce classement ? Sur des éléments tels que la fréquence, l’ordre et la singularité du terme de recherche, l’activité des enregistrements, les permissions d’accès, ainsi que quelques autres facteurs.
Faisons une comparaison. Si vous cherchez chaussons lapins dans la base de données, la recherche ne retournera que des enregistrements correspondant exactement à « chaussons lapins ». Avec l’index de recherche, en revanche, les résultats vous présenteront certes les enregistrements qui contiennent chaussons lapins, mais vous verrez également d’autres enregistrements contenant des termes similaires comme pantoufles lapins ou chausson lapin (au singulier). En outre, imaginez que vous ayez saisi lapins chaussons ou que vous ayez mal orthographié « lapin » (cela arrive à tout le monde). Grâce à la reconnaissance dans le désordre et à la correction orthographique, vous avez quand même accès aux résultats pertinents. Et tous les résultats sont classés en fonction de ce qui intéresse l’utilisateur à l'origine de la recherche.
Vous vous dites peut-être : La recherche Salesforce prête à l’emploi a l'air assez puissante (et c’est le cas), et elle fonctionne dans la plupart des cas d’utilisation. Par conséquent, dans quelle situation pourriez-vous bien avoir besoin d’une solution personnalisée ?
En règle générale, il faut une solution de recherche personnalisée quand votre organisation utilise une interface utilisateur personnalisée au lieu de l’interface Salesforce standard. Par exemple, une base de connaissances à l’intention des clients ou un site de données produit internes à l’usage des employés sont des interfaces personnalisées. Mais attention : Le développement d'une interface utilisateur personnalisée n’est pas à la portée de tous et nécessite des efforts supplémentaires. Heureusement, la recherche personnalisée vous permet de profiter de certaines fonctionnalités avancées de la recherche Salesforce. Donc, si votre entreprise décide de développer sa propre interface et a besoin d'une recherche personnalisée, ce module est fait pour vous.
Maintenant que nous avons couvert les bases de la recherche Salesforce, voyons l’API qui vous permet de trouver des enregistrements dans votre solution de recherche personnalisée.
Connexion à la recherche avec des API
Il y a deux API principales à garder à l’esprit. (Nous nous intéresserons à deux autres API un peu plus tard.)
- Salesforce Object Query Language (SOQL)
- Salesforce Object Search Language (SOSL)
SOQL et SOSL formatent tous deux les requêtes textuelles dans une API spécifique. Et les similarités s'arrêtent là. Une requête SOQL est l’équivalent d’une déclaration SQL SELECT et d’une recherche dans la base de données de l’organisation. De l’autre côté, SOSL est un outil programmatique permettant d’effectuer une recherche textuelle sur un index de recherche. SOSL utilise l’ensemble des fonctionnalités très utiles de l’index de recherche que nous avons vues précédemment.
SOQL et SOSL présentent des syntaxes très différentes. Nous avons inclus des liens vers la documentation destinée aux développeurs dans la section des ressources pour que vous puissiez vous y référer. Cependant, voici quelques consignes pour vous indiquer quand utiliser SOQL ou SOSL.
Utilisez SOQL quand vous savez dans quels objets ou champs se trouvent les données et que vous voulez :
- Récupérer les données d'un objet unique ou de plusieurs objets liés les uns aux autres.
- Compter le nombre d'enregistrements répondant à des critères spécifiés.
- Trier les résultats dans le cadre de la requête.
- Récupérer les données de champs de nombre, de date ou de case à cocher.
Utilisez SOSL quand vous ne savez pas dans quels objets ou champs se trouvent les données et que vous voulez :
- Récupérer les données pour un terme spécifique dont vous savez qu’il existe dans un champ. Comme SOSL peut créer des jetons à l’aide de plusieurs termes dans un champ et développer un index de recherche à partir de là, les recherches SOSL sont plus rapides et peuvent renvoyer plus de résultats pertinents.
- Récupérer efficacement plusieurs objets et champs, qu’il existe ou non un lien entre ces objets.
- Récupérer les données d'une division particulière d’une organisation à l'aide des fonctions de division, et ce le plus efficacement possible.
Examinons à présent deux autres types d’API.
Intéressons-nous tout d’abord à l’API Enregistrements suggérés. Vous la connaissez peut-être déjà par ses surnoms : suggestion automatique, résultats instantanés, ou encore saisie prédictive. Vous êtes aussi sans doute habitué à son comportement. Imaginons que vous utilisez un site Web qui vend les baskets les plus cools au monde. Il comporte une base de connaissance s’appuyant sur une solution de recherche Salesforce servant à fournir des conseils à une communauté de coureurs. Vous souhaitez savoir quelles chaussures acheter pour pratiquer le trail. Vous commencez à saisir « trail » dans la barre de recherche et celle-ci vous propose instantanément des articles contenant les termes recherchés dans leur titre.
Le champ de recherche savait exactement ce que vous vouliez lire !
Les méthodes REST Recherche parmi des enregistrements suggérés et Recherche parmi des articles suggérés sont là pour vous permettre d'offrir à vos utilisateurs la même satisfaction immédiate. Nous vous en dirons davantage sur l’utilisation de ces méthodes un peu plus tard.
Nous avons beaucoup étudié comment trouver des enregistrements dans Salesforce. Mais si vos utilisateurs accèdent à des enregistrements stockés en dehors de Salesforce dans le cadre de leur travail ? Nous avons également une solution pour cela : la recherche fédérée Salesforce. Il s’agit d’un nouvel outil permettant aux utilisateurs de trouver des éléments stockés en dehors de Salesforce, et ce, sans quitter Salesforce Classic, Salesforce Console ou Lightning Experience.
La recherche fédérée Salesforce vous permet de transformer la zone de recherche globale en moteur de recherche externe. Une fois la Recherche fédérée configurée, nous transférons la requête de l’utilisateur à un moteur externe qui explore les sources extérieures. Les résultats sont renvoyés directement dans les résultats de recherche Salesforce. Cette opération est réalisée à l’aide du connecteur de Recherche fédérée Salesforce. Ce connecteur est développé à partir de la spécification OpenSearch, donc vous pouvez y brancher tout moteur de recherche conforme à cette norme industrielle.
Il est important de savoir que la Recherche fédérée Salesforce ne parcourt pas l’index de recherche Salesforce, et donc que toutes les fonctionnalités avancées si géniales de Salesforce ne s'y appliquent pas. Par contre, les résultats de recherche sont renvoyés tels que donnés par le fournisseur de recherche externe, ce qui est génial aussi.
Maintenant, découvrons comment utiliser des protocoles pour envoyer des requêtes SOQL et SOSL.
Envoyer des requêtes avec des protocoles
Vous pouvez écrire toutes les belles requêtes de recherche que vous voulez. Mais cela ne sert à rien tant que vous n’utilisez pas un protocole d'API comme REST, SOAP ou Apex pour les envoyer.
N’oubliez pas qu’il existe des protocoles fonctionnant mieux avec certaines API qu’avec d’autres. De façon générale, nous parlons de requêtes avec SOQL et de recherches avec SOSL.
- Query (REST) et query() (SOAP) : exécute une requête SOQL sur un objet spécifié et renvoie les données qui correspondent aux critères indiqués.
- Search (REST) et search() (SOAP) : exécute une recherche textuelle SOSL sur les données de votre organisation.
D'autres ressources sont disponibles pour effectuer des tâches de recherche courantes comme suggérer automatiquement des enregistrements, des articles et des requêtes. Et si vous préférez éviter d’utiliser le modèle SOQL et SOSL, pensez à la Recherche paramétrée de REST. Au lieu d’insérer une chaîne de recherche dans l’URL, vous utilisez des paramètres (d’où son nom).
Dans le cas du code Apex, vous pouvez utiliser SOQL et SOSL à la volée en entourant la déclaration de crochets. Vous pouvez également utiliser une Classe de recherche pour effectuer des requêtes SOSL dynamiques et un Espace de nommage de recherche pour obtenir des résultats de recherche et des suggestions.
Nous avons inclus une liste pratique de ces outils dans la section Ressources de cette unité. Et nous allons vous expliquer comment utiliser les protocoles dans la prochaine section pour vous aider à bien démarrer. Pensez à lire la documentation du développeur pour obtenir plus d'informations et d’exemples.
Ressources
- SOQL and SOSL Reference
- REST API Developer Guide
- SOAP API Developer Guide
- Apex Developer Guide
- Aide Salesforce :
- Guide du développeur sur la recherche fédérée