$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¶
indexLock
pojo- Lock de l'index à mettre à jour. Le lock peut être obtenu au moyen de
la méthode
$search.lockIndex
. data
file / string- Objet
file
référençant le fichier CSV oustring
contenant directement les données CSV. fieldOptions
array-
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
/false
ou valeursyes
/no
indiquant si la valeur doit être stockée dans l'index. Voir ce que cela signifie dans la documentation de l'attributindexstore
de la descript
options
map-
Options supplémentaires. Les options reconnues sont:
format
map / pojo- Format de CSV. Doit être un objet
pojo
construit au moyen de$csv.makeFormat
ou un map qui reprend les mêmes règles que celles attendues par$csv.makeFormat
charset
string- Charset des données du CSV. Si non spécifié, les données sont traitées selon le charset UTF-8.
onprogress
function-
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
onprogress
de la méthode$http.request
. La fonction de callback peut interrompre le traitement en retournant la valeurfalse
.Un exemple est donné plus bas.
interval
number- 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). transform
function-
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ètreindexLock
plus haut).
Concrètement, la fonction reçoit en entrée un
array
contenant les valeurs d'un enregistrement. En sortie, on attend que la fonction fournisse unarray
contenant 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.