?>
L'action `buildTermIndex` est une étape fondamentale en 'Search Analytics'. Son rôle est de créer un 'index inversé' à partir d'une liste de termes ou de documents. Un index inversé est une structure de données qui mappe chaque terme unique à la liste des documents dans lesquels il apparaît. Cette structure est hautement optimisée pour des recherches textuelles rapides, bien plus performante qu'un balayage complet des documents originaux. Cette action peut soit partir d'une liste de termes déjà extraits, soit tokeniser du texte brut à la volée pour construire cet index.
| Parameter | Beschreibung |
|---|---|
| casOut | Spécifie la table de sortie qui contiendra l'index des termes. C'est une table optimisée pour les recherches futures. |
| fields | Utilisé lorsque `tokenize=TRUE`. Spécifie la ou les colonnes de la table d'entrée contenant le texte brut à analyser et à indexer. |
| language | Spécifie la langue du texte pour appliquer les règles linguistiques appropriées (comme la lemmatisation) lors de la tokenisation. La valeur par défaut 'UNIVERSAL' effectue une tokenisation de base sans traitement linguistique avancé. |
| table | La table CAS d'entrée. Selon la valeur de `tokenize`, il peut s'agir soit d'une table de documents avec du texte brut, soit d'une table de termes déjà extraits (format parent-enfant). |
| tokenize | Un booléen qui change radicalement le comportement de l'action. Si `FALSE` (défaut), l'action attend une table de termes déjà tokenisés. Si `TRUE`, l'action attend une table de documents et effectuera elle-même la tokenisation du texte spécifié dans le paramètre `fields`. |
Cette étape crée deux tables pour illustrer les deux modes de fonctionnement. `myDocs` contient du texte brut pour l'exemple avec tokenisation. `myTermList` simule une liste de termes déjà extraits (par exemple, par `tpParse`) pour l'exemple de base.
data casuser.myDocs(label="Table de documents bruts"); length docid 8 text $200; infile datalines dsd; input docid text $; datalines; 1,SAS Viya has powerful CAS actions. 2,Search analytics in SAS is great. 3,This is another document about SAS. ; run; data casuser.myTermList(label="Table de termes pré-calculés"); length _Term_ $ 20 _Parent_ 8; infile datalines dsd; input _Term_ $ _Parent_; datalines; sas,1 viya,1 cas,1 action,1 search,2 analytics,2 sas,2 index,3 term,3 sas,3 ; run;
C'est le cas d'usage le plus courant. On suppose que vous avez déjà une table (`myTermList`) qui liste les termes et les documents où ils apparaissent (format 'long'). L'action `buildTermIndex` va transformer cette liste en un format d'index inversé, beaucoup plus efficace pour la recherche. L'option `tokenize` est à `FALSE` par défaut.
| 1 | PROC CAS; |
| 2 | searchAnalytics.buildTermIndex / |
| 3 | TABLE={name="myTermList"} |
| 4 | casOut={name="termIndex_simple", replace=true}; |
| 5 | RUN; |
| 6 | QUIT; |
Cet exemple part d'une table de documents (`myDocs`) et utilise les options pour effectuer l'analyse complète à la volée. `tokenize=TRUE` demande à l'action de découper le texte. `language='ENGLISH'` applique les règles linguistiques anglaises (lemmatisation, etc.). `fields={'text'}` indique la colonne à analyser.
| 1 | PROC CAS; |
| 2 | searchAnalytics.buildTermIndex / |
| 3 | TABLE={name="myDocs"} |
| 4 | casOut={name="termIndex_advanced", replace=true} |
| 5 | tokenize=TRUE |
| 6 | language="ENGLISH" |
| 7 | fields={"text"}; |
| 8 | RUN; |
| 9 | QUIT; |