?>
L'action `buildAutoComplete` du CAS Action Set `searchAnalytics` est un outil puissant pour améliorer l'expérience utilisateur dans les applications de recherche. Son rôle est de construire un index spécialisé, optimisé pour les requêtes d'auto-complétion (ou saisie semi-automatique). Concrètement, à partir d'une table contenant une liste de termes (souvent générée au préalable par l'action `buildTermIndex`), elle crée une nouvelle table structurée pour répondre très rapidement aux suggestions de recherche. Par exemple, lorsqu'un utilisateur tape 'pro', le système peut instantanément suggérer 'produit', 'processus', 'projet'. Cette action est fondamentale pour créer des barres de recherche réactives et intelligentes dans les applications web ou les interfaces SAS Viya.
| Paramètre | Description |
|---|---|
| index | Spécifie la table d'index de termes d'entrée. Cette table, généralement le résultat de `buildTermIndex` ou `tpParse`, contient les mots ou phrases à partir desquels l'index d'auto-complétion sera construit. C'est un paramètre obligatoire. |
| casOut | Spécifie la table de sortie qui contiendra l'index d'auto-complétion. Cette table est optimisée pour être utilisée par l'action `searchAutoComplete`. C'est un paramètre obligatoire. |
| index.where | Sous-paramètre de `index`. Permet de spécifier une clause WHERE pour filtrer les lignes de la table d'entrée. Très utile pour ne construire l'index qu'à partir d'un sous-ensemble de termes pertinents (par exemple, ceux avec une fréquence élevée). |
| index.groupBy | Sous-paramètre de `index`. Permet de spécifier une ou plusieurs variables de regroupement. L'action créera des index d'auto-complétion distincts pour chaque combinaison unique des valeurs de ces variables. Idéal pour des suggestions contextuelles (par ex., par catégorie de produit). |
| casOut.replace | Sous-paramètre de `casOut`. Si défini sur `True`, la table de sortie sera écrasée si elle existe déjà. Par défaut, l'action échoue si la table de sortie existe. |
Pour utiliser `buildAutoComplete`, nous avons besoin d'une table d'index de termes en entrée. Le code ci-dessous crée une table `casuser.my_term_index` qui simule une liste de termes extraits de documents, avec leur fréquence (`_N_`) et une catégorie (`Category`). Cette table servira de source pour construire notre index d'auto-complétion.
data casuser.my_term_index; length _Term_ $ 50 Category $ 20; infile datalines dsd; input _Term_ $ _N_ Category $; datalines; sas viya, 15, Logiciel sas 9, 8, Logiciel programmation sas, 12, Compétence science des données, 25, Compétence apprentissage automatique, 18, Compétence intelligence artificielle, 22, Compétence procédure stockée, 4, Technique processus métier, 9, Métier projet analytique, 11, Métier ; run;
Cet exemple de base montre comment utiliser l'action `buildAutoComplete` avec les paramètres minimaux. Nous prenons la table `my_term_index` en entrée et créons une nouvelle table `my_autocomplete_index` dans CASUSER.
| 1 | PROC CAS; |
| 2 | searchAnalytics.buildAutoComplete / |
| 3 | index={name='my_term_index'} |
| 4 | casOut={name='my_autocomplete_index', caslib='casuser'}; |
| 5 | RUN; |
| 6 | QUIT; |
Ce scénario montre comment écraser une table d'auto-complétion existante en utilisant l'option `replace=True`. De plus, nous utilisons le paramètre `where` sur la table d'entrée pour n'inclure que les termes ayant une fréquence (`_N_`) supérieure à 10, optimisant ainsi la pertinence des suggestions.
| 1 | PROC CAS; |
| 2 | searchAnalytics.buildAutoComplete / |
| 3 | index={name='my_term_index', where='_N_ > 10'} |
| 4 | casOut={name='my_autocomplete_index', caslib='casuser', replace=True, label='Index pour termes fréquents'}; |
| 5 | RUN; |
| 6 | QUIT; |
Cet exemple expert démontre la puissance du paramètre `groupBy`. Nous allons construire des index d'auto-complétion distincts pour chaque valeur de la colonne `Category`. Cela permet de créer des suggestions de recherche contextuelles, spécifiques à une catégorie de produits ou de documents.
| 1 | PROC CAS; |
| 2 | searchAnalytics.buildAutoComplete / |
| 3 | index={name='my_term_index', groupBy={'Category'}} |
| 4 | casOut={name='my_autocomplete_by_cat', caslib='casuser', replace=True}; |
| 5 | RUN; |
| 6 | QUIT; |