The following instructions explain how to create a Nominatim database
from an OSM planet file. It is assumed that you have already successfully
-installed the Nominatim software itself. If this is not the case, return to the
+installed the Nominatim software itself and the `nominatim` tool can be found
+in your `PATH`. If this is not the case, return to the
[installation page](Installation.md).
## Creating the project directory
Before you start the import, you should create a project directory for your
new database installation. This directory receives all data that is related
to a single Nominatim setup: configuration, extra data, etc. Create a project
-directory apart from the Nominatim software:
+directory apart from the Nominatim software and change into the directory:
```
mkdir ~/nominatim-planet
+cd ~/nominatim-planet
```
In the following, we refer to the project directory as `$PROJECT_DIR`. To be
The Nominatim tool assumes per default that the current working directory is
the project directory but you may explicitly state a different directory using
-the `--project-dir` parameter. The following instructions assume that you have
-added the Nominatim build directory to your PATH and run all directories from
-the project directory. So change into now:
-
-```
-cd $PROJECT_DIR
-```
+the `--project-dir` parameter. The following instructions assume that you run
+all commands from the project directory.
!!! tip "Migration Tip"
### Configuration setup in `.env`
-The Nominatim server can be customized via a `.env` in the project directory.
-This is a file in [dotenv](https://github.com/theskumar/python-dotenv) format
-which looks the same as variable settings in a standard shell environment.
+The Nominatim server can be customized via an `.env` configuration file in the
+project directory. This is a file in [dotenv](https://github.com/theskumar/python-dotenv)
+format which looks the same as variable settings in a standard shell environment.
You can also set the same configuration via environment variables. All
settings have a `NOMINATIM_` prefix to avoid conflicts with other environment
variables.
above. If the system starts swapping or you are getting out-of-memory errors,
reduce the cache size or even consider using a flatnode file.
-### Verify the import
+
+### Testing the installation
Run this script to verify all required tables and indices got created successfully.
```sh
-nominatim check-database
+nominatim admin --check-database
```
-### Testing the installation
-
Now you can try out your installation by running:
```sh
-make serve
+nominatim serve
```
This runs a small test server normally used for development. You can use it
If you want to be able to search for places by their type through
[special key phrases](https://wiki.openstreetmap.org/wiki/Nominatim/Special_Phrases)
-you also need to enable these key phrases like this:
+you also need to import these key phrases like this:
- nominatim special-phrases --from-wiki > specialphrases.sql
- psql -d nominatim -f specialphrases.sql
+```sh
+nominatim special-phrases --import-from-wiki
+```
Note that this command downloads the phrases from the wiki link above. You
need internet access for the step.
+You can also import some phrases from a csv file.
+To do so, you have access to the following command:
+
+```sh
+nominatim special-phrases --import-from-csv <csv file>
+```
+
+Note that the 2 previous commands will update the phrases from your database.
+This mean that if you import some phrases from a csv file, only the phrases
+present in the csv file will be kept into the database. All other phrases will
+be removed.
+
+If you want to only add new phrases and not update the other ones you can add
+the argument `--no-replace` to the import command. For example:
+
+```sh
+nominatim special-phrases --import-from-csv <csv file> --no-replace
+```
+
+This will add the phrases present in the csv file into the database without
+removing the other ones.
## Installing Tiger housenumber data for the US
TIGER data to your own Nominatim instance by following these steps. The
entire US adds about 10GB to your database.
- 1. Get preprocessed TIGER 2019 data and unpack it into your project
- directory:
+ 1. Get preprocessed TIGER 2020 data:
cd $PROJECT_DIR
- wget https://nominatim.org/data/tiger2019-nominatim-preprocessed.tar.gz
- tar xf tiger2019-nominatim-preprocessed.tar.gz
+ wget https://nominatim.org/data/tiger2020-nominatim-preprocessed.tar.gz
2. Import the data into your Nominatim database:
- nominatim add-data --tiger-data tiger
+ nominatim add-data --tiger-data tiger2020-nominatim-preprocessed.tar.gz
3. Enable use of the Tiger data in your `.env` by adding: