JDONREFv3ES Analyzer
L'analyzer fourni avec le plugin de JDONREF permet simplement de calculer certains champs qui n'auraient pas été fournis durant l'indexation. Ce calcul est à la base du fonctionnement de la recherche d'adresse.
Principe
ElasticSearch est un moteur de recherche par indexation inversée. La logique de ces outils permet une grande performance dans les recherches à partir du moment où les données sont correctement organisées. Le principe de l'analyzer jdonrefv3es est d'assister à l'indexation des adresses. Plus concrètement, jdonrefv3es permet d'indexer les éléments de l'adresse différemment suivant leur nature, et de créer des champs complémentaires.
Indexation
Les fichiers de mapping définissent l'indexation d'un ensemble de champs de l'adresse. Le champ sur lequel s'appuie l'indexation proposée par l'analyzer jdonrefv3es est "fullName".
Il est la concaténation d'autres champs du document adresse, en appliquant les règles suivantes concernant l'indexation :
- l'indexation du numéro n'utilise pas le token filter ngram ;
- l'indexation du code postal et du code département est réalisée ;
- l'indexation des autres champs s'appuyent sur le token filter ngram et les synonymes ;
De cette manière, tous les champs pourront être utilisés avec auto-complétion, sauf le champ numéro. En effet, l'expérience utilisateur de l'auto-complétion sur le numéro d'adresse donne des résultats tel que :
saisie de 2 HOPITAL résultat 2 BOULEVARD DE L HOPITAL 75005 PARIS résultat 20 BOULEVARD DE L HOPITAL 75005 PARIS résultat 21 BOULEVARD DE L HOPITAL 75005 PARIS
qui ne sont pas nécessairement ceux auxquels s'attendent les utilisateurs qui ont saisi un numéro d'adresse.
Champs générés
En version 0.2, seul le champ fullName est généré. La génération de fullName_without_numbers et numéro est nécessaire pour l'utilisation de la query fournie en version 0.1, mais n'est pas assurée par l'analyzer de la version 0.2. Il vous faut donc calculer vous même ces données si vous souhaitez utiliser la query.
Il s'agit des champs :
- numero
- ligne4
- ligne6
- fullName
- fullName_without_numbers
- departement
Le champ ligne4 est calculé à partir des champs suivants :
- numero
- repetition
- type de voie
- article
- voie
Le champ ligne6 est calculé à partir des champs :
- codepostal
- commune
Le champ fullName est calculé à partir des champs :
- ligne4
- ligne6
Le champ fullName_without_numbers est calculé à partir des champs :
- repetition
- type de voie
- article
- voie
- commune
Le champ departement est calculé à partir de :
- code postal
Le champ numero est défini à zéro lorsque le type utilisé n'est pas adresse.
Configuration
<<A rédiger>>