JDONREFv4 plugin GettingStarted : Différence entre versions
(→Création de l'index) |
(→Utiliser les synonymes) |
||
Ligne 94 : | Ligne 94 : | ||
===== Utiliser les synonymes ===== |
===== Utiliser les synonymes ===== |
||
− | A noter qu'il vous est possible d'utiliser la gestion des synonymes offertes par elasticsearch avec le [[JDONREFv3ES_synonymes|fichier de synonyme]] fourni par jdonrefv3es. Il suffit de le définir à la création de votre index : |
||
+ | Le fichier de synonymes a normalement été utilisé à la création de votre index à partir du fichier jdonrev3es_synonym.fr.txt. |
||
− | |||
− | curl -XPUT 'http://localhost:9200/jdonref/' -d '{ |
||
− | "analysis" : { |
||
⚫ | |||
− | "synonym": { |
||
⚫ | |||
− | "filter": ["synonym"] |
||
⚫ | |||
− | }, |
||
− | "filter": { |
||
− | "synonym" : { |
||
⚫ | |||
− | "synonyms_path" : "jdonrev3es_synonym.fr.txt" |
||
− | } |
||
− | } |
||
− | } |
||
− | }' |
||
La recherche pourra ainsi par exemple être effectuée avec le type de voie "BD" plutôt que "BOULEVARD". |
La recherche pourra ainsi par exemple être effectuée avec le type de voie "BD" plutôt que "BOULEVARD". |
||
+ | Attention toutefois, si vous modifiez ce fichier, il faut penser aussi à ré-indexer vos données. |
||
+ | |||
+ | Une autre stratégie consisterait à inverser le fonctionnement du fichier de synonyme pour l'utiliser durant la requête et non pas l'indexation. |
||
+ | Le fichier de synonyme contiendrait alors des lignes commme : |
||
+ | residence, res => residence |
||
+ | |||
+ | et la création de l'analyzer serait par exemple: |
||
⚫ | |||
+ | "jdonrefv3es_index" : { |
||
⚫ | |||
⚫ | |||
+ | "filter" : ["standard", "lowercase", "jdonrefv3es_nGram"] |
||
+ | }, |
||
+ | "jdonrefv3es_search" : { |
||
+ | "type" : "custom", |
||
+ | "tokenizer" : "standard", |
||
+ | "filter" : ["standard", "lowercase", "jdonrefv3es_synonyme"] |
||
+ | } |
||
⚫ | |||
===== Utiliser l'analyser ===== |
===== Utiliser l'analyser ===== |
Version du 30 avril 2014 à 02:40
L'utilisation du plugin JDONREFv3ES nécessite :
- de disposer d'un cluster elasticsearch !
- d'installer le plugin JDONREFv3ES
- d'indexer le contenu
Vous êtes ensuite libre d'effectuer les recherches souhaitées ! L'API elasticsearch peut bien sûr être utilisée, mais le plugin jdonrefv3es fourni un moyen de chercher efficacement des adresses (c'est à dire avec les résultats auquel on devrait s'attendre).
Sommaire
Création de l'index
Déployez le fichier de synonyme jdonrefv3es_synonym.fr_FR.txt dans le répertoire /etc/elasticsearch ou de manière à ce qu'il soit accessible par le path.
Puis commencez par vous créer un index en respectant la configuration fournie par le fichier jdonrefv3es-settings.json de la sorte :
curl -XPUT 'http://localhost:9200/jdonref/' -d '{ "index" : { "analysis" : { "analyzer": { "jdonrefv3es_index" : { "type" : "custom", "tokenizer" : "standard", "filter" : ["standard", "lowercase", "jdonrefv3es_synonyme", "jdonrefv3es_nGram"] }, "jdonrefv3es_search" : { "type" : "custom", "tokenizer" : "standard", "filter" : ["standard", "lowercase"] } }, "filter" : { "jdonrefv3es_metaphone" : { "type" : "phonetic", "encoder" : "metaphone", "replace" : true }, "jdonrefv3es_synonyme" : { "type" : "synonym", "synonyms_path": "jdonrefv3es_synonym.fr_FR.txt" }, "jdonrefv3es_nGram" : { "type" : "edgeNGram", "min_ngram": 1, "max_gram": 15 } } } } }'
Pour que le plugin jdonrefv3es soit efficace, il s'agit de respecter les mappings fournis par jdonref. Il est ainsi possible d'indexer du contenu, comme une commune :
curl -XPUT 'http://localhost:9200/jdonref/commune/1' -d '{ "codeinsee" : "75056", "codedepartement" : "75", "codepays" : "1", "commune" : "PARIS", "codepostal" : "75000", "t0" : "22/03/2014", "geometrie" : { "type": "multipolygon", "coordinates" : [ [[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]], [[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]] ] } }'
ou une voie :
curl -XPUT 'http://localhost:9200/jdonref/voie/1' -d '{ "numero_min": "1", "numero_max": "192", "typedevoie": "BOULEVARD", "article": "DE", "voie": "HOPITAL", "codeinsee" : "75056", "codedepartement" : "75", "codepays" : "1", "commune" : "PARIS", "codepostal" : "75000", "t0" : "22/03/2014", "geometrie" : { "type": "multipolygon", "coordinates" : [ [[102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0]], [[100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0]], [[100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2]] ] } }'
Notez bien que pour que l'indexation de la géométrie se déroule correctement, les mappings auront du être définis au préalable.
Utiliser les synonymes
Le fichier de synonymes a normalement été utilisé à la création de votre index à partir du fichier jdonrev3es_synonym.fr.txt.
La recherche pourra ainsi par exemple être effectuée avec le type de voie "BD" plutôt que "BOULEVARD". Attention toutefois, si vous modifiez ce fichier, il faut penser aussi à ré-indexer vos données.
Une autre stratégie consisterait à inverser le fonctionnement du fichier de synonyme pour l'utiliser durant la requête et non pas l'indexation. Le fichier de synonyme contiendrait alors des lignes commme :
residence, res => residence
et la création de l'analyzer serait par exemple:
"analyzer": { "jdonrefv3es_index" : { "type" : "custom", "tokenizer" : "standard", "filter" : ["standard", "lowercase", "jdonrefv3es_nGram"] }, "jdonrefv3es_search" : { "type" : "custom", "tokenizer" : "standard", "filter" : ["standard", "lowercase", "jdonrefv3es_synonyme"] } },
Utiliser l'analyser
Si vous ne voulez pas remplir vous-même les champs "ligne4" et "ligne6", il vous est possible d'utiliser l'analyzer fourni par jdonref :
curl -XPUT 'http://localhost:9200/jdonref/' -d '{ "analysis" : { "analyzer" : { "jdonrefv3es": { "tokenizer": "whitespace" } } } }'
Si les lignes 4 et 6 ne sont pas spécifiées durant l'indexation, elles sont alors calculées à partir des autres champs disponibles.
Indexation
A noter enfin qu'il est conseillé d'utiliser l'API [BULK] d'ElasticSearch pour procéder à l'indexation d'un très grand nombre d'adresses.
Attention, pour que la requête du plugin fonctionne correctement, certains champs doivent être correctement renseignés. L'analyzer fourni permet de remplir ce travail automatiquement.
Recherches
Une fois le contenu indexé, il vous est possible d'effectuer des recherches à loisir !