JDONREFv4 Mappings
JDONREFv3ES introduit différents mapping permettant de gérer des adresses.
C'est l'adresse qui dispose de la plus grande richesse d'information, mais les autres mappings peuvent disposer d'informations qui leurs sont propres (notamment leur géométrie).
Ils sont fournis dans le plugin sous la forme de fichiers json.
Sommaire
Le type adresse
Après les type poizon, le type adresse est le plus complet. Sa géométrie est un point, mais pour des raisons pratiques, le type geo_shape est employé. Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/adresse/_mapping' -d '{ "adresse": { "path" : "just_name", "properties" : { "adr_id" : { "type" : "string", "index":"not_analyzed"}, "tro_id" : { "type" : "string", "index":"not_analyzed"}, "voi_id" : { "type" : "string", "index":"not_analyzed"}, "code_insee" : { "type" : "string", "index":"not_analyzed", "copy_to": "codes"}, "code_insee_commune" : { "type" : "string", "index":"not_analyzed", "copy_to": "codes"}, "code_departement" : { "type" : "string", "index":"not_analyzed", "copy_to": "codes"}, "code_pays" : { "type" : "string" , "store":true, "term_vector" : "with_positions_offsets", "index_analyzer":"jdonrefv3es_codes_index","search_analyzer":"jdonrefv3es_search"}, "codes" : { "type" : "string", "store": true, "term_vector" : "with_positions_offsets", "index_analyzer":"jdonrefv3es_codes_index","search_analyzer":"jdonrefv3es_search"}, "numero" : { "type" : "integer", "index":"not_analyzed"}, "repetition" : { "type" : "string", "index":"not_analyzed"}, "type_de_voie" : { "type" : "string", "index":"not_analyzed"}, "article" : { "type" : "string", "index":"not_analyzed"}, "libelle" : { "type" : "string", "index":"not_analyzed"}, "commune" : { "type" : "string" , "store":true, "term_vector" : "with_positions_offsets", "index_analyzer":"jdonrefv3es_index","search_analyzer":"jdonrefv3es_search"}, "code_arrondissement" : { "type" : "string", "index":"not_analyzed", "copy_to": "codes"}, "code_postal" : { "type" : "string", "index":"not_analyzed", "copy_to": "codes"}, "pays" : { "type" : "string" , "index": "no"}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss", "index":"not_analyzed"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss", "index":"not_analyzed"}, "ligne2" : { "type" : "string", "index":"no"}, "ligne3" : { "type" : "string", "index":"no"}, "ligne4" : { "type" : "string", "store":true, "term_vector" : "with_positions_offsets", "index_analyzer":"jdonrefv3es_index","search_analyzer":"jdonrefv3es_search"}, "ligne5" : { "type" : "string", "index":"no"}, "ligne6" : { "type" : "string", "index": "no"}, "ligne7" : { "type" : "string", "store":true, "term_vector" : "with_positions_offsets", "index_analyzer":"jdonrefv3es_index","search_analyzer":"jdonrefv3es_search"}, "type" : { "type" : "string", "store":true, "index":"not_analyzed"}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"}, "fullName" : {"type": "string", "store":true, "index": "no"} } } }'
Le mapping troncon
Le mapping troncon correspond à une portion de voie. Sa géométrie est une linestring. Il dispose de bornes de début et de fin. Mais contrairement à la base de donnée PostgreSQL de JDONREF, il n'a pas de bornes pour chaque coté du troncon (2 troncons sont créés). Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/troncon/_mapping' -d '{ "troncon": { "properties" : { "tro_id" : { "type" : "string", "store" : true}, "voi_id" : { "type" : "string", "store" : true}, "codeinsee" : { "type" : "string", "store" : true}, "codedepartement" : { "type" : "string", "store" : true}, "codepays" : { "type" : "string" , "store" : true}, "numero_debut" : {"type" : "integer", "store" : true}, "numero_fin" : {"type" : "integer", "store" : true}, "repetition_debut" : {"type" : "string", "store" : true}, "repetition_fin" : {"type" : "string", "store" : true}, "typedevoie" : { "type" : "string", "store": true}, "article" : { "type" : "string", "store": true}, "voie" : { "type" : "string", "store": true}, "commune" : { "type" : "string" , "store": true}, "codepostal" : { "type" : "string", "store": true}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "ligne4" : { "type" : "string", "store": true}, "ligne5" : { "type" : "string", "store": true}, "ligne6" : { "type" : "string", "store": true}, "ligne7" : { "type" : "string", "store": true}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"} } } }'
Le mapping voie
Le mapping voie correspond à une adresse sans numéro. Sa géométrie est une linestring (en attendant l'implémentation du multilinestring par elasticsearch). Elle dispose d'un numéro de début et de fin. Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/voie/_mapping' -d '{ "voie": { "properties" : { "voi_id" : { "type" : "string", "store" : true}, "codeinsee" : { "type" : "string", "store" : true}, "codedepartement" : { "type" : "string", "store" : true}, "codepays" : { "type" : "string" , "store" : true}, "numero_min" : {"type" : "integer", "store" : true}, "numero_max" : {"type" : "integer", "store" : true}, "typedevoie" : { "type" : "string", "store": true}, "article" : { "type" : "string", "store": true}, "voie" : { "type" : "string", "store": true}, "commune" : { "type" : "string" , "store": true}, "codepostal" : { "type" : "string", "store": true}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "ligne4" : { "type" : "string", "store": true}, "ligne5" : { "type" : "string", "store": true}, "ligne6" : { "type" : "string", "store": true}, "ligne7" : { "type" : "string", "store": true}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"} } } }'
Le mapping commune
Le mapping commune a pour géométrie un multipolygon, sans extrusion. Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/commune/_mapping' -d '{ "commune": { "properties" : { "codeinsee" : { "type" : "string", "store" : true}, "codedepartement" : { "type" : "string", "store" : true}, "codepays" : { "type" : "string" , "store" : true}, "commune" : { "type" : "string" , "store": true}, "codepostal" : { "type" : "string", "store": true}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "ligne4" : { "type" : "string", "store": true}, "ligne5" : { "type" : "string", "store": true}, "ligne6" : { "type" : "string", "store": true}, "ligne7" : { "type" : "string", "store": true}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"} } } }'
Le mapping departement
Le mapping commune a pour géométrie un multipolygon, sans extrusion. Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/departement/_mapping' -d '{ "departement": { "properties" : { "codedepartement" : { "type" : "string", "store" : true}, "codepays" : { "type" : "string" , "store" : true}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "ligne6" : { "type" : "string", "store": true}, "ligne7" : { "type" : "string", "store": true}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"} } } }'
Le mapping pays
Le mapping pays a pour géométrie un multipolygon, sans extrusion. Son mapping est défini de la manière suivante :
$ curl -XPUT 'http://localhost:9200/jdonref/pays/_mapping' -d '{ "pays": { "properties" : { "codepays" : { "type" : "string" , "store" : true}, "t0" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "t1" : { "type" : "date", "format": "YYYY-MM-dd HH:mm:ss"}, "ligne7" : { "type" : "string", "store": true}, "geometrie" : { "type" : "geo_shape", "precision": "1cm", "tree": "quadtree"} } } }'