project(nominatim)
set(NOMINATIM_VERSION_MAJOR 4)
-set(NOMINATIM_VERSION_MINOR 0)
+set(NOMINATIM_VERSION_MINOR 1)
set(NOMINATIM_VERSION_PATCH 0)
set(NOMINATIM_VERSION "${NOMINATIM_VERSION_MAJOR}.${NOMINATIM_VERSION_MINOR}.${NOMINATIM_VERSION_PATCH}")
+4.1.0
+
+ * switch to ICU tokenizer as default
+ * add housenumber normalization and support optional spaces during search
+ * add postcode format checking and support optional spaces during search
+ * add function for cleaning housenumbers in word table
+ * add updates/deletion of country names imported from OSM
+ * linked places no longer overwrite names from a place permanently
+ * move default country name configuration into yaml file (thanks @tareqpi)
+ * more compact layout for interpolation and TIGER tables
+ * introduce mutations to ICU tokenizer (used for German umlauts)
+ * support reinitializing a full project directory with refresh --website
+ * fix various issues with linked places on updates
+ * add support for external sanitizers and token analyzers
+ * add CLI commands for forced indexing
+ * add CLI command for version report
+ * add offline import mode
+ * change geocodejson to return a feature class in the 'type' field
+ * add ISO3166-2 to address output (thanks @I70l0teN4ik)
+ * improve parsing and matching of addr: tags
+ * support relations as street members of associatedStreet
+ * better ranking for address results from TIGER data
+ * adapt rank classification to changed tag usage in OSM
+ * update bundled osm2pgsql to 1.6.0
+ * add typing information to Python code
+ * improve unit test coverage
+ * reorganise and speed up code for BDD tests, drop support for scenes
+ * move PHP unit tests to PHP 9.5
+ * extensive typo fixes in documentation (thanks @woodpeck,@StephanGeorg,
+ @amandasaurus, @nslxndr, @stefkiourk, @Luflosi, @kianmeng)
+ * drop official support for installation on CentOS
+ * add installation instructions for Ubuntu 22.04
+ * add support for PHP8
+ * add setup instructions for updates and systemd
+ * drop support for PostgreSQL 9.5
+
+4.0.1
+
+ * fix initialisation error in replication script
+ * ICU tokenizer: avoid any special characters in word tokens
+ * better error message when API php script does not exist
+ * fix quoting of house numbers in SQL queries
+ * small fixes and improvements in search query parsing
+ * add documentation for moving the database to a different machine
+
4.0.0
* refactor name token computation and introduce ICU tokenizer
Try `chmod a+r nominatim.so; chmod a+x nominatim.so`.
-When running SELinux, make sure that the
-[context is set up correctly](../appendix/Install-on-Centos-8.md#adding-selinux-security-settings).
-
When you recently updated your operating system, updated PostgreSQL to
a new version or moved files (e.g. the build directory) you should
recreate `nominatim.so`. Try
prerequisites. There are also step-by-step instructions available for
the following operating systems:
+ * [Ubuntu 22.04](../appendix/Install-on-Ubuntu-22.md)
* [Ubuntu 20.04](../appendix/Install-on-Ubuntu-20.md)
* [Ubuntu 18.04](../appendix/Install-on-Ubuntu-18.md)
If you are migrating from a version <3.6, then you still have to follow
the manual migration steps up to 3.6.
-## 4.0.0 -> master
+## 4.0.0 -> 4.1.0
### ICU tokenizer is the new default
The prepared place information is handed to the tokenizer next. This is a
Python module responsible for processing the names from both name and address
terms and building up the word index from them. The process is explained in
-more detail in the [Tokenizer chapter](Tokenizer.md).
+more detail in the [Tokenizer chapter](Tokenizers.md).
### Address processing
- 'Testing' : 'develop/Testing.md'
- 'External Data Sources': 'develop/data-sources.md'
- 'Appendix':
- - 'Installation on CentOS 8' : 'appendix/Install-on-Centos-8.md'
- 'Installation on Ubuntu 18' : 'appendix/Install-on-Ubuntu-18.md'
- 'Installation on Ubuntu 20' : 'appendix/Install-on-Ubuntu-20.md'
- 'Installation on Ubuntu 22' : 'appendix/Install-on-Ubuntu-22.md'
country_code TEXT,
class TEXT,
type TEXT,
- linked_place_id BIGINT
+ linked_place_id BIGINT,
+ centroid_x float,
+ centroid_y float
);
-- Retrieve the data needed by the indexer for updating the place.
result.type := p.type;
result.country_code := p.country_code;
result.rank_address := p.rank_address;
+ result.centroid_x := ST_X(p.centroid);
+ result.centroid_y := ST_Y(p.centroid);
-- Names of linked places need to be merged in, so search for a linkable
-- place already here.
Wrapper around place information the indexer gets from the database and hands to
the tokenizer.
"""
-from typing import Optional, Mapping, Any
+from typing import Optional, Mapping, Any, Tuple
class PlaceInfo:
""" This data class contains all information the tokenizer can access
return self._info.get('rank_address', 0)
+ @property
+ def centroid(self) -> Optional[Tuple[float, float]]:
+ """ A center point of the place in WGS84. May be None when the
+ geometry of the place is unknown.
+ """
+ x, y = self._info.get('centroid_x'), self._info.get('centroid_y')
+ return None if x is None or y is None else (x, y)
+
+
def is_a(self, key: str, value: str) -> bool:
""" Set to True when the place's primary tag corresponds to the given
key and value.
# patch level when cherry-picking the commit with the migration.
#
# Released versions always have a database patch level of 0.
-NOMINATIM_VERSION = (4, 0, 99, 6)
+NOMINATIM_VERSION = (4, 1, 0, 0)
-POSTGRESQL_REQUIRED_VERSION = (9, 5)
+POSTGRESQL_REQUIRED_VERSION = (9, 6)
POSTGIS_REQUIRED_VERSION = (2, 2)
# Cmake sets a variable @GIT_HASH@ by executing 'git --log'. It is not run
-Subproject commit 3f136f1a6b484ab3f37a970e2717122f0a899d87
+Subproject commit b0352aa8f15e2739ba36d72561854a2738123770