]> git.openstreetmap.org Git - nominatim.git/blob - docs/develop/Import.md
Merge pull request #2498 from lonvia/ordering-for-unlisted-place-results
[nominatim.git] / docs / develop / Import.md
1 # OSM Data Import
2
3 OSM data is initially imported using [osm2pgsql](https://osm2pgsql.org).
4 Nominatim uses its own data output style 'gazetteer', which differs from the
5 output style created for map rendering.
6
7 ## Database Layout
8
9 The gazetteer style produces a single table `place` with the following rows:
10
11  * `osm_type` - kind of OSM object (**N** - node, **W** - way, **R** - relation)
12  * `osm_id` - original OSM ID
13  * `class` - key of principal tag defining the object type
14  * `type` - value of principal tag defining the object type
15  * `name` - collection of tags that contain a name or reference
16  * `admin_level` - numerical value of the tagged administrative level
17  * `address` - collection of tags defining the address of an object
18  * `extratags` - collection of additional interesting tags that are not
19                  directly relevant for searching
20  * `geometry` - geometry of the object (in WGS84)
21
22 A single OSM object may appear multiple times in this table when it is tagged
23 with multiple tags that may constitute a principal tag. Take for example a
24 motorway bridge. In OSM, this would be a way which is tagged with
25 `highway=motorway` and `bridge=yes`. This way would appear in the `place` table
26 once with `class` of `highway` and once with a `class` of `bridge`. Thus the
27 *unique key* for `place` is (`osm_type`, `osm_id`, `class`).