$search.indexCsv¶
Alias $search.indexCSV
Description¶
Méthode permettant d'indexer le contenu d'un fichier CSV, où une version transformée de ce dernier.
Syntaxe¶
$search.indexCsv( indexLock , data , fieldOptions [ , options ] )
Paramètres¶
indexLockpojo- Lock de l'index à mettre à jour. Le lock peut être obtenu au moyen de
la méthode
$search.lockIndex. datafile / string- Objet
fileréférençant le fichier CSV oustringcontenant directement les données CSV. fieldOptionsarray-
Tableau décrivant les champs à créer dans l'index.
Par défaut, on s'attend à ce que le tableau décrive les colonnes du CSV. Si vous utilisez une fonction de transformation (voir option
transform, le tableau doit décrire, dans l'ordre, les champs fournis par la fonction de callback (voir exemple ci-dessous).Chaque entrée de la table doit être un map constitué des propriétés suivantes:
name(obligatoire) : Nom du champ-
mode(optionnel) : Mode d'indexation; les modes reconnus sont:token: tokenisation de la valeurraw: pas de tokenisation (indexation de la valeur complète)no: pas d'indexation de la valeur (elle est ignorée)
-
store(optionel) : Flagtrue/falseou valeursyes/noindiquant si la valeur doit être stockée dans l'index. Voir ce que cela signifie dans la documentation de l'attributindexstorede la descript
optionsmap-
Options supplémentaires. Les options reconnues sont:
formatmap / pojo- Format de CSV. Doit être un objet
pojoconstruit au moyen de$csv.makeFormatou un map qui reprend les mêmes règles que celles attendues par$csv.makeFormat charsetstring- Charset des données du CSV. Si non spécifié, les données sont traitées selon le charset UTF-8.
onprogressfunction-
Fonction de callback à invoquer pour donner à l'application un retour sur l'état d'avancement du traitement. La fonction de callback, si définie, est invoquée à intervalle régulier durant le traitement. L'utilisation est identique à l'option
onprogressde la méthode$http.request. La fonction de callback peut interrompre le traitement en retournant la valeurfalse.Un exemple est donné plus bas.
intervalnumber- Intervalle en millisecondes entre deux appels de callback de la
fonction
onprogress. Si non défini, l'intervalle par défaut est de 1000 millisecondes (1 seconde). transformfunction-
Fonction de callback permettant de construire une nouvelle variante d'un record, de court-circuiter l'indexation d'un enregistrement ou d'interrompre une indexation.
L'idée première de la fonction est de transformer les valeurs brutes lues du CSV en une ou plusieurs valeurs à indexer. La fonction est invoquée pour chaque enregistrement du fichier d'entrée.
La fonction reçoit jusqu'à 2 paramètres:
- Un tableau (
array) contenant les valeurs d'un enregistrement - Un map qui reprend les options passées lors de l'appel à
$search.lockIndex(voir paramètreindexLockplus haut).
Concrètement, la fonction reçoit en entrée un
arraycontenant les valeurs d'un enregistrement. En sortie, on attend que la fonction fournisse unarraycontenant les valeurs à indexer. Le tableau en sortie doit correspondre au champs décrits dans le paramètrefieldOptions.Si la fonction retourne la valeur
null, l'enregistrement n'est pas indexé.Si la fonction retourne la valeur
false, le processus d'indexation est immédiatement stoppé.Un exemple est donné plus bas.
- Un tableau (
Retour¶
Retourne true si l'indexation des données a réussi, sinon false.
Exemple¶
Exemple d'indexation d'un CSV suivi d'une recherche. L'exemple ci-dessous s'appuie sur le fichier "movies.csv" disponible en ligne à l'adresse suivante: https://gist.github.com/tiangechen/b68782efa49a16edaf07dc2cdaa855ea.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | |
L'exemple ci-dessous se charge d'indexer des adresses fournies par le registre fédéral des bâtiments et des logements. Ce dernier est fourni sous la forme d'un CSV disponible à l'adresse https://www.housing-stat.ch/fr/madd/public.html.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | |
Dans cet exemple, on utilise une fonction de transformation pour construire une valeur à partir des données du CSV. Dans le fichier, un enregistrement est constitué des valeurs suivantes (dans l'ordre):
0 : EGID
1 : EDID
2 : EGAID
3 : DEINR
4 : ESID
5 : STRNAME
6 : STRNAMK
7 : STRINDX
8 : STRSP
9 : STROFFIZIEL
10 : DPLZ4
11 : DPLZZ
12 : DPLZNAME
13 : DKODE
14 : DKODN
15 : DOFFADR
16 : DEXPDA
On ne souhaite pas indexer les valeurs brutes du CSV, mais une chaîne de caractères basées sur ces valeurs. La valeur à indexer doit avoir le format suivant:
"STRNAME DEINR, DPLZ4 DPLZNAME"
DEINR peut être vide.