Il est courant qu'une organisation utilise une terminologie unique ou plusieurs façons de se référer à un concept ou à une chose. Vous devez définir des synonymes pour établir l'équivalence des termes afin d'aider les utilisateurs à trouver des éléments lors d'une recherche.
Les synonymes sont définis en indexant des éléments à l'aide du schéma courant _dictionaryEntry
.
Les éléments de type _dictionaryEntry
peuvent avoir les propriétés suivantes:
Propriété | Type | Description | Requis ? |
---|---|---|---|
_term |
string | Terme à définir. Les valeurs recommandées sont 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 effectuée devient terme OR 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. Si la requête concerne "science fiction,", Cloud Search n'y applique aucun synonyme. La requête ne correspond qu'aux éléments contenant "science fiction.". Les éléments contenant "scifi" sont omis.
Pour que les deux termes soient interchangeables, définissez-les séparément:
Terme | Synonymes |
---|---|
scifi | science fiction |
science fiction | scifi |
Lors du traitement de la requête, le trait d'union et les 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 les termes auxquels les utilisateurs sont susceptibles d'ajouter un trait d'union, normalisez d'abord la valeur _term
pour utiliser des espaces blancs au lieu des traits d'union.
Pour reprendre l'exemple, les définitions suivantes correspondent aux requêtes utilisateur 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. Plus précisément, des synonymes sont appliqués dans les applications de recherche pour toutes les recherches, quelle que soit la source de données. Si vous souhaitez utiliser des synonymes propres à une source de données, 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 l'article Créer un connecteur de contenu.
L'extrait de code suivant illustre la création d'une RepositoryDoc
représentant le terme et le synonyme à partir d'un enregistrement de fichier CSV:
Tenez compte des points suivants 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 appliqués à toutes les sources de données dans toutes les applications de recherche.
Toutefois, supposons que votre organisation dispose d'équipes d'ingénierie et de ventes distinctes, et que vous souhaitiez fournir à chaque équipe une expérience de recherche différente, y compris des synonymes spécifiques à chaque poste. Dans ce cas, vous pouvez créer une application de recherche avec une source de données et des synonymes spécifiques à l'ingénierie, et une autre application de recherche avec une source de données et des synonymes spécifiques à la vente. Pour atteindre cet objectif, 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 ne soient appliqués qu'aux applications de recherche qui incluent une source de données spécifique.
Par exemple, en ajoutant la ligne de code suivante à l'exemple de code précédent, vous vous assurez que les synonymes indexés sont spécifiques à la source de données:
structuredData.put("_onlyApplicableForAttachedSearchApplications", true);