]> git.openstreetmap.org Git - nominatim.git/blobdiff - docs/customize/Settings.md
add minimal documentation for the SQLite usage
[nominatim.git] / docs / customize / Settings.md
index 7eebebe89beadf946eafcaa2014985daa926f508..8245e309f1a476f0fba05d1df857002ddd6e06c3 100644 (file)
@@ -91,7 +91,7 @@ The option is only used by the Legacy tokenizer and ignored otherwise.
 | --------------     | --------------------------------------------------- |
 | **Description:**   | Tokenizer used for normalizing and parsing queries and names |
 | **Format:**        | string |
-| **Default:**       | legacy |
+| **Default:**       | icu |
 | **After Changes:** | cannot be changed after import |
 
 Sets the tokenizer type to use for the import. For more information on
@@ -112,6 +112,9 @@ Points to the file with additional configuration for the tokenizer.
 See the [Tokenizer](../customize/Tokenizers.md) descriptions for details
 on the file format.
 
+If a relative path is given, then the file is searched first relative to the
+project directory and then in the global settings directory.
+
 #### NOMINATIM_MAX_WORD_FREQUENCY
 
 | Summary            |                                                     |
@@ -150,7 +153,7 @@ objects when the area becomes too large.
 | Summary            |                                                     |
 | --------------     | --------------------------------------------------- |
 | **Description:**   | Restrict search languages |
-| **Format:**        | comma,separated list of language codes |
+| **Format:**        | string: comma-separated list of language codes |
 | **Default:**       | _empty_ |
 
 Normally Nominatim will include all language variants of name:XX
@@ -186,7 +189,7 @@ will be used.
 | **Description:**   | Enable searching for Tiger house number data |
 | **Format:**        | boolean |
 | **Default:**       | no |
-| **After Changes:** | run `nominatim --refresh --functions` |
+| **After Changes:** | run `nominatim refresh --functions` |
 
 When this setting is enabled, search and reverse queries also take data
 from [Tiger house number data](Tiger.md) into account.
@@ -199,7 +202,7 @@ from [Tiger house number data](Tiger.md) into account.
 | **Description:**   | Enable searching in external house number tables |
 | **Format:**        | boolean |
 | **Default:**       | no |
-| **After Changes:** | run `nominatim --refresh --functions` |
+| **After Changes:** | run `nominatim refresh --functions` |
 | **Comment:**       | Do not use. |
 
 When this setting is enabled, search queries also take data from external
@@ -283,7 +286,7 @@ setting to define the password for proxies that require a login.
 Nominatim uses [osm2pgsql](https://osm2pgsql.org) to load the OSM data
 initially into the database. Nominatim comes bundled with a version of
 osm2pgsql that is guaranteed to be compatible. Use this setting to use
-a different binary instead. You should do this only, when you know exactly
+a different binary instead. You should do this only when you know exactly
 what you are doing. If the osm2pgsql version is not compatible, then the
 result is undefined.
 
@@ -300,31 +303,21 @@ Set a custom location for the
 [wikipedia ranking file](../admin/Import.md#wikipediawikidata-rankings). When
 unset, Nominatim expects the data to be saved in the project directory.
 
-#### NOMINATIM_PHRASE_CONFIG
-
-| Summary            |                                                     |
-| --------------     | --------------------------------------------------- |
-| **Description:**   | Configuration file for special phrase imports |
-| **Format:**        | path |
-| **Default:**       | _empty_ (use default settings) |
-
-The _phrase_config_ file configures black and white lists of tag types,
-so that some of them can be ignored, when loading special phrases from
-the OSM wiki. The default settings can be found in the configuration
-directory as `phrase-settings.json`.
-
 #### NOMINATIM_ADDRESS_LEVEL_CONFIG
 
 | Summary            |                                                     |
 | --------------     | --------------------------------------------------- |
 | **Description:**   | Configuration file for rank assignments |
 | **Format:**        | path |
-| **Default:**       | _empty_ (use default settings) |
+| **Default:**       | address-levels.json |
 
-The _address level config_ configures rank assignments for places. See
+The _address level configuration_ defines the rank assignments for places. See
 [Place Ranking](Ranking.md) for a detailed explanation what rank assignments
-are and what the configuration file must look like. The default configuration
-can be found in the configuration directory as `address-levels.json`.
+are and what the configuration file must look like.
+
+When a relative path is given, then the file is searched first relative to the
+project directory and then in the global settings directory.
+
 
 #### NOMINATIM_IMPORT_STYLE
 
@@ -335,9 +328,13 @@ can be found in the configuration directory as `address-levels.json`.
 | **Default:**       | extratags |
 
 The _style configuration_ describes which OSM objects and tags are taken
-into consideration for the search database. This setting may either
-be a string pointing to one of the internal styles or it may be a path
-pointing to a custom style.
+into consideration for the search database. Nominatim comes with a set
+of pre-configured styles, that may be configured here.
+
+You can also write your own custom style and point the setting to the file
+with the style. When a relative path is given, then the style file is searched
+first relative to the project directory and then in the global settings
+directory.
 
 See [Import Styles](Import-Styles.md)
 for more information on the available internal styles and the format of the
@@ -357,6 +354,9 @@ location for OSM nodes. For larger imports it can significantly speed up
 the import. When this option is unset, then osm2pgsql uses a PsotgreSQL table
 to store the locations.
 
+When a relative path is given, then the flatnode file is created/searched
+relative to the project directory.
+
 !!! warning
 
     The flatnode file is not only used during the initial import but also
@@ -552,6 +552,8 @@ used.
 | **Format:**        | boolean |
 | **Default:**       | no |
 | **After Changes:** | run `nominatim refresh --website` |
+| **Comment:**       | PHP frontend only |
+
 
 This feature is currently undocumented and potentially broken.
 
@@ -564,6 +566,7 @@ This feature is currently undocumented and potentially broken.
 | **Format:**        | integer |
 | **Default:**       | 500 |
 | **After Changes:** | run `nominatim refresh --website` |
+| **Comment:**       | PHP frontend only |
 
 This setting defines the threshold over which a name is no longer considered
 as rare. When searching for places with rare names, only the name is used
@@ -604,6 +607,88 @@ with a single query.
 
 Setting this parameter to 0 disables polygon output completely.
 
+
+#### NOMINATIM_SEARCH_WITHIN_COUNTRIES
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Disable search for elements that are not in the country grid |
+| **Format:**        | boolean |
+| **Default:**       | no |
+| **After Changes:** | run `nominatim refresh --website` |
+| **Comment:**       | PHP frontend only |
+
+Enable to search elements just within countries.
+
+When enabled, if, despite not finding a point within the static grid of countries, it
+finds a geometry of a region, do not return the geometry.
+Return "Unable to geocode" instead.
+
+
+#### NOMINATIM_SERVE_LEGACY_URLS
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Enable serving via URLs with a .php suffix |
+| **Format:**        | boolean |
+| **Default:**       | yes |
+| **Comment:**       | Python frontend only |
+
+When enabled, then endpoints are reachable as `/<name>` as well as `/<name>.php`.
+This can be useful when you want to be backwards-compatible with previous
+versions of Nominatim.
+
+
+#### NOMINATIM_API_POOL_SIZE
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Number of parallel database connections per worker |
+| **Format:**        | number |
+| **Default:**       | 10 |
+| **Comment:**       | Python frontend only |
+
+Sets the maximum number of database connections available for a single instance
+of Nominatim. When configuring the maximum number of connections that your
+PostgreSQL database can handle, you need at least
+`NOMINATIM_API_POOL_SIZE` * `<number of configured workers>` connections.
+For configuring the number of workers, refer to the section about
+[Deploying the Python frontend](../admin/Deployment-Python.md).
+
+#### NOMINATIM_QUERY_TIMEOUT
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Timeout for SQL queries to the database |
+| **Format:**        | number (seconds) |
+| **Default:**       | 10 |
+| **Comment:**       | Python frontend only |
+
+When this timeout is set, then all SQL queries that run longer than the
+specified numbers of seconds will be cancelled and the user receives a
+timeout exceptions. Users of the API see a 503 HTTP error.
+
+The timeout does ont apply when using the
+[low-level DB access](../library/Low-Level-DB-Access.md)
+of the library. A timeout can be manually set, if required.
+
+
+#### NOMINATIM_REQUEST_TIMEOUT
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Timeout for search queries |
+| **Format:**        | number (seconds) |
+| **Default:**       | 60 |
+| **Comment:**       | Python frontend only |
+
+When this timeout is set, a search query will finish sending queries
+to the database after the timeout has passed and immediately return the
+results gathered so far.
+
+Note that under high load you may observe that users receive different results
+than usual without seeing an error. This may cause some confusion.
+
 ### Logging Settings
 
 #### NOMINATIM_LOG_DB
@@ -634,12 +719,33 @@ Can be used as the same time as NOMINATIM_LOG_FILE.
 | **After Changes:** | run `nominatim refresh --website` |
 
 Enable logging of requests into a file with this setting by setting the log
-file where to log to. The entries in the log file have the following format:
+file where to log to. A relative file name is assumed to be relative to
+the project directory.
+
+
+The entries in the log file have the following format:
 
     <request time> <execution time in s> <number of results> <type> "<query string>"
 
 Request time is the time when the request was started. The execution time is
-given in ms and corresponds to the time the query took executing in PHP.
+given in seconds and corresponds to the time the query took executing in PHP.
 type contains the name of the endpoint used.
 
 Can be used as the same time as NOMINATIM_LOG_DB.
+
+#### NOMINATIM_DEBUG_SQL
+
+| Summary            |                                                     |
+| --------------     | --------------------------------------------------- |
+| **Description:**   | Enable printing of raw SQL by SQLAlchemy |
+| **Format:**        | boolean |
+| **Default:**       | no |
+| **Comment:**       | **For developers only.** |
+
+This settings enables
+[SQL debugging](https://docs.sqlalchemy.org/en/20/core/engines.html#dbengine-logging)
+by SQLAlchemy. This can be helpful when debugging some bugs with internal
+query handling. It should only be used together with the CLI query functions.
+Enabling it for server mode may have unintended consequences. Use the `debug`
+parameter instead, which prints information on how the search is executed
+including SQL statements.