Il est courant qu'une organisation utilise une terminologie propre ou différentes appellations pour désigner un concept ou une notion. En établissant des équivalences grâce aux synonymes, vous pouvez aider les utilisateurs à trouver l'information recherchée.
Les synonymes sont définis en indexant des éléments à l'aide d'un schéma courant : _dictionaryEntry
.
Les éléments de type _dictionaryEntry
peuvent avoir les propriétés suivantes:
Propriété | Type | Description | Obligatoire ? |
---|---|---|---|
_term |
string | Terme à définir. Utilisez de préférence des mots sans trait d'union ou des expressions sans ponctuation. | Obligatoire |
_synonym |
string (repeated) | Autres termes à inclure dans les requêtes correspondant à la chaîne définie dans _term . |
Obligatoire |
_onlyApplicableForAttachedSearchApplications |
boolean | Permet de regrouper des synonymes par source de données et application de recherche. Pour en savoir plus, consultez Définir des synonymes spécifiques à une source de données. | Facultatif |
Lorsqu'un utilisateur inclut la valeur de la propriété _term
dans une requête, la requête effective devient "terme OU synonymes". Par exemple, si le terme "scifi" est défini avec le synonyme "science fiction", une requête contenant le mot "scifi" correspond aux éléments contenant "scifi" ou "science fiction.".
Les synonymes ne sont pas appliqués de manière bidirectionnelle. Ainsi, si l'utilisateur lance une requête sur "science fiction,", Cloud Search n'applique aucun synonyme. La requête ne renvoie que les éléments contenant "science fiction.". Les éléments contenant "scifi" sont ignorés.
Pour que les deux termes soient interchangeables, vous devez les définir séparément.
Terme | Synonymes |
---|---|
scifi | science fiction |
science fiction | scifi |
Pendant le traitement de la requête, les traits d'union et autres signes de ponctuation sont supprimés avant que les synonymes soient appliqués. La requête utilisateur "sci-fi" correspond à _term
"sci fi.". Pour créer des synonymes pour des termes auxquels les utilisateurs sont susceptibles d'ajouter un trait d'union, normalisez d'abord _term
avec un espace au lieu d'un tiret.
Poursuivant l'exemple, les définitions suivantes correspondent aux requêtes utilisateur et considèrent "sci-fi," "sci fi," "scifi," et "science fiction" comme interchangeables:
Terme | Synonymes |
---|---|
scifi | science fiction, sci fi |
sci fi | science fiction, scifi |
science fiction | scifi, sci fi |
Par défaut, les synonymes d'une source de données s'appliquent à l'ensemble du domaine. En effet, les applications de recherche utilisent les synonymes pour toutes les recherches, quelle que soit la source de données. Si vous souhaitez que les synonymes s'appliquent une source de données particulière, consultez Définir des synonymes spécifiques à une source de données.
Définir des synonymes globaux à l'aide du SDK Cloud Search
Vous pouvez utiliser le SDK Content Connector pour définir des termes et leurs synonymes. Pour savoir comment créer un connecteur, consultez Créer un connecteur de contenu.
L'extrait de code suivant permet de créer un RepositoryDoc
représentant le terme et les synonymes à partir d'un enregistrement de fichier CSV:
Prenez en compte les informations suivantes lorsque vous définissez des synonymes:
- Les synonymes saisis doivent être publics au sein du domaine. Pour ce faire, dans l'exemple précédent, vous devez définir la LCA sur
DOMAIN_PUBLIC_ACL
. - Les propriétés suivantes ne doivent pas être définies pour votre fichier de configuration, car elles remplacent le paramètre public du domaine dans votre code :
defaultAcl.mode=FALLBACK
defaultAcl.public=true
Définir des synonymes spécifiques à une application de recherche
Par défaut, les synonymes sont pris en compte pour toutes les sources de données dans l'ensemble des applications de recherche.
Toutefois, supposons que votre organisation dispose d'équipes d'ingénierie et de ventes distinctes, et que vous souhaitiez associer à chacune une expérience de recherche différente, y compris des synonymes spécifiques à leurs postes. Dans ce cas, vous pouvez créer deux applications de recherche distinctes pour l'ingénierie et les ventes, associées à leurs propres source de données et synonymes. Pour ce faire, indexez chaque synonyme dans une source de données spécifique à l'aide de _onlyApplicableForAttachedSearchApplications=true
. Ce paramètre limite les synonymes de sorte qu'ils soient pris en compte uniquement dans les applications de recherche incluant une source de données spécifique.
Par exemple, l'ajout de la ligne de code suivante à l'exemple précédent garantit que les synonymes indexés sont spécifiques à la source de données:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);