]> git.openstreetmap.org Git - nominatim.git/blob - ChangeLog
Merge pull request #3510 from lonvia/indexing-precompute-count
[nominatim.git] / ChangeLog
1 4.4.0
2  * add export to SQLite database and SQLite support for the frontend
3  * switch to Python frontend as the default frontend
4  * update to osm2pgsql 1.11.0
5  * add support for new osm2pgsql middle table format
6  * simplify geometry for large polygon objects not used in addresses
7  * various performance tweaks for search in Python frontend
8  * fix regression in search with categories where it was confused with near
9    search
10  * partially roll back use of SQLAlchemy lambda statements due to bugs
11    in SQLAchemy
12  * fix handling of timezones for timestamps from the database
13  * fix handling of full address searches in connection with a viewbox
14  * fix postcode computation of highway areas
15  * fix handling of timeout errors for Python <= 3.10
16  * fix address computation for postcode areas
17  * fix variable shadowing in osm2pgsql flex script, causing bugs with LuaJIT
18  * make sure extratags are always null when empty
19  * reduce importance of places without wikipedia reference
20  * improve performance of word count computations
21  * drop support for wikipedia tags with full URLs
22  * replace get_addressdata() SQL implementation with a Python function
23  * improve display name for non-address features
24  * fix postcode validation for postcodes with country code
25    (thanks @pawel-wroniszewski)
26  * add possibility to run imports without superuser database rights
27    (thanks @robbe-haesendonck)
28  * new CLI command for cleaning deleted relations (thanks @lujoh)
29  * add check for database version in the CLI check command
30  * updates to import styles ignoring more unused objects
31  * various typo fixes (thanks @kumarUjjawal)
32
33 4.3.2
34  * fix potential SQL injection issue for 'nominatim admin --collect-os-info'
35  * PHP frontend: fix on-the-fly lookup of postcode areas near boundaries
36  * Python frontend: improve handling of viewbox
37  * Python frontend: correct deployment instructions
38
39 4.3.1
40  * reintroduce result rematching
41  * improve search of multi-part names
42  * fix accidentally switched meaning of --reverse-only and --search-only in
43    warm command
44
45 4.3.0
46  * fix failing importance recalculation command
47  * fix merging of linked names into unnamed boundaries
48  * fix a number of corner cases with interpolation splitting resulting in
49    invalid geometries
50  * fix failure in website generation when password contains curly brackets
51  * fix broken use of ST_Project in PostGIS 3.4
52  * new NOMINATIM_SEARCH_WITHIN_COUNTRIES setting to restrict reverse lookups
53    to known countries (thanks @alfmarcua)
54  * allow negative OSM IDs (thanks @alfmarcua)
55  * disallow import of Tiger data in a frozen DB
56  * avoid UPDATE to change settings to be compatible with r/o DBs (thanks @t-tomek)
57  * update bundled osm2pgsql to 1.9.2
58  * reorganise osm2pgsql flex style and make it the default
59  * exclude names ending in :wikipedia from indexing
60  * no longer accept comma as a list separator in name tags
61  * process forward dependencies on update to catch updates in geometries
62    of ways and relations
63  * fix handling of isolated silent letters during transliteration
64  * no longer assign postcodes to large linear features like rivers
65  * introduce nominatim.paths module for finding data and libraries
66  * documentation layout changed to material theme
67  * new documentation section for library
68  * various smaller fixes to existing documentation
69    (thanks @woodpeck, @bloom256, @biswajit-k)
70  * updates to vagrant install scripts, drop support for Ubuntu 18
71    (thanks @n-timofeev)
72  * removed obsolete configuration variables from env.defaults
73  * add script for generating a taginfo description (thanks @biswajit-k)
74  * modernize Python code around BDD test and add testing of Python frontend
75  * lots of new BDD tests for API output
76
77 4.2.3
78
79  * fix deletion handling for 'nominatim add-data'
80  * adapt place_force_delete() to new deletion handling
81  * flex style: avoid dropping of postcode areas
82  * fix update errors on address interpolation handling
83
84 4.2.2
85
86  * extend flex-style library to fully support all default styles
87  * fix handling of Hebrew aleph
88  * do not assign postcodes to rivers
89  * fix string matching in PHP code
90  * update osm2pgsql (various updates to flex)
91  * fix slow query when deleting places on update
92  * fix CLI details query
93  * fix recalculation of importance values
94  * fix polygon simplification in reverse results
95  * add class/type information to reverse geocodejson result
96  * minor improvements to default tokenizer configuration
97  * various smaller fixes to documentation
98
99 4.2.1
100
101  * fix XSS vulnerability in debug view
102
103 4.2.0
104
105  * add experimental support for osm2pgsql flex style
106  * introduce secondary importance value to be retrieved from a raster data file
107    (currently still unused, to replace address importance, thanks to @tareqpi)
108  * add new report tool `nominatim admin --collect-os-info`
109    (thanks @micahcochran, @tareqpi)
110  * reorganise index to improve lookup performance and size
111  * run index creation after import in parallel
112  * run ANALYZE more selectively to speed up continuation of indexing
113  * fix crash on update when addr:interpolation receives an illegal value
114  * fix minimum number of retrieved results to be at least 10
115  * fix search for combinations of special term + name (e.g Hotel Bellevue)
116  * do not return interpolations without a parent street on reverse search
117  * improve invalidation of linked places on updates
118  * fix address parsing for interpolation lines
119  * make sure socket timeouts are respected during replication
120    (working around a bug in some versions of pyosmium)
121  * update bundled osm2pgsql to 1.7.1
122  * add support for PostgreSQL 15
123  * typing fixes to work with latest type annotations from typeshed
124  * smaller improvements to documentation (thanks to @mausch)
125
126 4.1.1
127
128  * fix XSS vulnerability in debug view
129
130 4.1.0
131
132  * switch to ICU tokenizer as default
133  * add housenumber normalization and support optional spaces during search
134  * add postcode format checking and support optional spaces during search
135  * add function for cleaning housenumbers in word table
136  * add updates/deletion of country names imported from OSM
137  * linked places no longer overwrite names from a place permanently
138  * move default country name configuration into yaml file (thanks @tareqpi)
139  * more compact layout for interpolation and TIGER tables
140  * introduce mutations to ICU tokenizer (used for German umlauts)
141  * support reinitializing a full project directory with refresh --website
142  * fix various issues with linked places on updates
143  * add support for external sanitizers and token analyzers
144  * add CLI commands for forced indexing
145  * add CLI command for version report
146  * add offline import mode
147  * change geocodejson to return a feature class in the 'type' field
148  * add ISO3166-2 to address output (thanks @I70l0teN4ik)
149  * improve parsing and matching of addr: tags
150  * support relations as street members of associatedStreet
151  * better ranking for address results from TIGER data
152  * adapt rank classification to changed tag usage in OSM
153  * update bundled osm2pgsql to 1.6.0
154  * add typing information to Python code
155  * improve unit test coverage
156  * reorganise and speed up code for BDD tests, drop support for scenes
157  * move PHP unit tests to PHP 9.5
158  * extensive typo fixes in documentation (thanks @woodpeck,@StephanGeorg,
159    @amandasaurus, @nslxndr, @stefkiourk, @Luflosi, @kianmeng)
160  * drop official support for installation on CentOS
161  * add installation instructions for Ubuntu 22.04
162  * add support for PHP8
163  * add setup instructions for updates and systemd
164  * drop support for PostgreSQL 9.5
165
166 4.0.2
167
168  * fix XSS vulnerability in debug view
169
170 4.0.1
171
172  * fix initialisation error in replication script
173  * ICU tokenizer: avoid any special characters in word tokens
174  * better error message when API php script does not exist
175  * fix quoting of house numbers in SQL queries
176  * small fixes and improvements in search query parsing
177  * add documentation for moving the database to a different machine
178
179 4.0.0
180
181  * refactor name token computation and introduce ICU tokenizer
182    * name processing now happens in the indexer outside the DB
183    * reorganizes abbreviation handling and moves it to the indexing phases
184    * adds preprocessing of names
185  * add country-specific ranking for Spain, Slovakia
186  * partially switch to using SP-GIST indexes
187  * better updating of dependent addresses for name changes in streets
188  * remove unused/broken tables for external housenumbers
189  * move external postcodes to CSV format and no longer save them in tables
190    (adds support for postcodes for arbitrary countries)
191  * remove postcode helper entries from placex (thanks @AntoJvlt)
192  * change required format for TIGER data to CSV
193  * move configuration of default languages from wiki into config file
194  * expect customized configuration files in project directory by default
195  * disable search API for reverse-only import (thanks @darkshredder)
196  * port most of maintenance/import code to Python and remove PHP utils
197  * add catch-up mode for replication
198  * add updating of special phrases (thanks @AntoJvlt)
199  * add support for special phrases in CSV files (thanks @AntoJvlt)
200  * switch to case-independent matching between place and boundary names
201  * remove disabling of reverse query parsing
202  * minor tweaks to search algorithm to avoid more false positives
203  * major overhaul of the administrator and developer documentation
204  * add security disclosure policy
205  * add testing of installation scripts via CI
206  * drop support for Python < 3.6 and Postgresql < 9.5
207
208 3.7.3
209
210  * fix XSS vulnerability in debug view
211
212 3.7.2
213
214  * fix database check for reverse-only imports
215  * do not error out in status API result when import date is missing
216  * add array_key_last function for PHP < 7.3 (thanks to @woodpeck)
217  * fix more url when server name is unknown (thanks to @mogita)
218  * commit changes to replication log table
219
220 3.7.1
221
222  * fix smaller issues with special phrases import (thanks @AntoJvlt)
223  * add index to speed up continued indexing during import
224  * fix index on location_property_tiger(parent_place_id) (thanks @changpingc)
225  * make sure Python code is backward-compatible with Python 3.5
226  * various documentation fixes
227
228 3.7.0
229
230  * switch to dotenv for configuration file
231  * introduce 'make install' (reorganising most of the code)
232  * introduce nominatim tool as replacement for various php scripts
233  * introduce project directories and allow multiple installations from same build
234  * clean up BDD tests: drop nose, reorganise step code
235  * simplify test database for API BDD tests and autoinstall database
236  * port most of the code for command-line tools to Python
237    (thanks to @darkshredder and @AntoJvlt)
238  * add tests for all tooling
239  * replace pyosmium-get-changes with custom internal implementation using
240    pyosmium
241  * improve search for queries with housenumber and partial terms
242  * add database versioning
243  * use jinja2 for preprocessing SQL files
244  * introduce automatic migrations
245  * reverse fix preference of interpolations over housenumbers
246  * parallelize indexing of postcodes
247  * add non-key indexes to speed up housenumber + street searches
248  * switch housenumber field in placex to save transliterated names
249
250 3.6.0
251
252  * add full support for searching by and displaying of addr:* tags
253  * improve address output for large-area objects
254  * better use of country names from OSM data for search and display
255  * better debug output for reverse call
256  * add support for addr:place links without an place equivalent in OSM
257  * improve finding postcodes with normalisation artefacts
258  * batch object to index for rank 30, avoiding a wrap-around of transaction
259    IDs in PostgreSQL
260  * introduce dynamic address rank computation for administrative boundaries
261    depending on linked objects and their place in the admin level hierarchy
262  * add country-specific address ranking for Indonesia, Russia, Belgium and
263    the Netherlands (thanks @hendrikmoree)
264  * make sure wikidata/wikipedia tags are imported for all styles
265  * make POIs searchable by name and housenumber (thanks @joy-yyd)
266  * reverse geocoding now ignores places without an address rank (rivers etc.)
267  * installation of a webserver is no longer mandatory, for development
268    use the php internal webserver via 'make serve
269  * reduce the influence of place nodes in addresses
270  * drop support for the unspecific is_in tag
271  * various minor tweaks to supplied styles
272  * move HTML web frontend into its own project
273  * move scripts for processing external data sources into separate directories
274  * introduce separate configuration for website (thanks @krahulreddy)
275  * update documentation, in particular, clean up development docs
276  * update osm2pgsql to 1.4.0
277
278 3.5.2
279
280  * ensure that wikipedia tags are imported for all styles
281  * reinstate verbosity for indexing during updates
282  * make house number reappear in display name on named POIs
283  * introduce batch processing in indexer to avoid transaction ID overrun
284  * increase splitting for large geometries to improve indexing speed
285  * remove deprecated get_magic_quotes_gpc() function
286  * make sure that all postcodes have an entry in word and are thus searchable
287  * remove use of ST_Covers in conjunction with ST_Intersects,
288    causes bad query planning and slow updates in Postgis3
289  * update osm2pgsql
290
291 3.5.1
292
293  * disable jit and parallel processing in PostgreSQL for osm2pgsql
294  * update libosmium to 2.15.6 (fixes an issue with processing hanging
295    on large multipolygons)
296
297 3.5.0
298
299  * structured select on HTML search page
300  * new PHP Nominatim\Shell class to wrap shell escaping
301  * remove polygon parameter from all API calls
302  * improve handling of postcode areas
303  * reorganise place linking algorithm, now using wikidata tag as well
304  * remove linkees from search_name and larger_area tables
305  * introduce country-specific address ranks
306  * reorganise rank address computation
307  * cleanup of partition function
308  * improve parenting for large POIs
309  * add support for Postgresql 12 and Postgis 3
310  * add earlier cleanup when --drop is given, to reduce memory usage
311  * remove use of place_id in URLs
312  * replace C nominatim indexer with a simpler Python implementation
313  * split up the huge sql/functions.sql file
314  * move osm2pgsql tests to osm2pgsql
315  * add new extratags style which imports all tags from OSM
316  * add new script for checking the import after completion
317  * update osm2pgsql, reducing memory usage
318  * use new wikipedia importance and add processing of wikidata tags
319  * add search form for details page
320  * use ExtraDataPath for country_grid table
321  * remove short_name from list of names to be displayed
322  * split up CMakeFile, so that all parts can be built separately
323  * update installation instructions for CentOS and Ubuntu
324  * add script for importing/updating multiple country extracts
325  * various documentation improvements
326
327 3.4.2
328
329  * fix security bug in /details endpoint where user input was not
330    properly sanitized
331
332 3.4.1
333
334  * update osm2pgsql to fix hans during updates and lost address numbers
335    during updates
336
337 3.4.0
338
339  * increase required version for PostgreSQL(9.3), PostGIS(2.2) and PHP(7.0)
340  * better error reporting for out-of-memory errors
341  * exclude postcode ranges separated by colon from centre point calculation
342  * update osm2pgsql, better handling of imports without flatnode file
343  * switch to more efficient algorithm for word set computation
344  * use only boundaries for country and state parts of addresses
345  * improve updates of addresses with housenumbers and interpolations
346  * remove country from place_addressline table and use country_code instead
347  * optimise indexes on search_name partition tables
348  * improve searching of attached streets for large objects like airports
349  * drop support for python 2
350  * new scripts for importing Wikidata for importance
351  * create and drop indexes concurrently to not clash with auto vacuum
352  * various documentation improvements
353
354
355 3.3.0
356
357  * zoom 17 in reverse now zooms in on minor streets
358  * fix use of postcode relations in address
359  * support for housenumber 0 on interpolations
360  * replace database abstraction DB with PDO and switch to using exceptions
361  * exclude line features at rank 30 from reverse geocoding
362  * remove self-reference and country from place_addressline
363  * make json output more readable (less escaping)
364  * update conversion scripts for postcodes
365  * scripts in utils/ are no longer executable (always use scripts in build dir)
366  * remove Natural Earth country fallback (OSM is complete enough)
367  * make rank assignments configurable
368  * allow accept languages with underscore
369  * new reverse-only import mode (without search index table)
370  * rely on boundaries only for states and countries
371  * update osm2pgsql, now using a configurable style
372  * provide multiple import styles
373  * improve search when house number and postcodes are dropped
374  * overhaul of setup code
375  * add support for PHPUnit 6
376  * update test database
377  * various documentation improvements
378
379 3.2.0
380
381  * complete rewrite of reverse search algorithm
382  * add new geojson and geocodejson output formats
383  * add simple export script to export addresses to CSV
384  * remove is_in terms from address computation
385  * remove unused search_name_country tables
386  * various smaller fixes to query parsing
387  * convert Tokens and token types to class types
388  * correctly handle update when boundary object type is changed
389  * improve debug output for /search endpoint
390  * update to latest osm2pgsql and leaflet.js
391  * overhaul of /details endpoint:
392      * new class parameter when using osmtype/osmid parameters
393      * permalink to instance-independent osmtype/osmid parameter format
394      * new json output format
395  * update CentOS vagrant machine to use SELinux
396  * add vagrant scripts for Ubuntu 18.04
397  * fix build process for BSD
398  * enable running the database on a different host than the setup scripts
399  * allow to configure use of custom PHP binaries (PHP_BIN)
400  * extensive coding style improvements to PHP code
401  * more PHP unit tests for new classes
402  * increase coverage for API tests
403  * add documentation for API
404
405 3.1.0
406
407  * rework postcode handling and introduce location_postcode table
408  * make setup less verbose and print a summary in the end
409  * setup: error out when web site user does not exist
410  * add more API tests to complete code coverage
411  * reinstate key-value amenity search (special term [key=value])
412  * fix detection of coordinates in query
413  * various smaller tweaks to ranking of search interpretations
414  * complete overhaul of PHP frontend code using OOP
415  * add address rank to details page
416  * update Tiger scripts for 2017 data and clean up unused code
417  * various bug fixes and improvements to UI
418  * improve reverse geocoding performance close to coasts
419  * more PHP style cleanup (quoting)
420  * allow unnamed road in reverse geocoding to avoid too far off results
421  * add function to recalculate counts for full-word search term
422  * add function to check if new updates are available
423  * update documentation and switch to mkdocs for generating HTML
424
425 3.0.1
426
427  * fix bug in geometry building algorithm in osm2pgsql
428  * fix typos in build instructions
429
430 3.0.0
431
432  * move to cmake build system
433  * various fixes to HTML output
434  * reverse endpoint now can return geometries
435  * add support for PHP7
436  * move to on-the-fly computation of interpolations
437  * improve handling of linked places (updating)
438  * improve test framework:
439     * replace lettuce with behave
440     * use smaller database for API tests
441  * drop support for postgres < 9.1, postgis < 2.0 and PHP < 5.4
442  * make external data use optional (useful for imports without US)
443  * detect postgres and postgis versions automatically
444  * clean up query logging and remove unused tables
445  * move installation documentation into this repo
446  * add self-documenting vagrant scripts
447  * remove --create-website, recommend to use website directory in build
448  * add accessor functions for URL parameters and improve error checking
449  * remove IP blocking and rate-limiting code
450  * enable CI via travis
451  * reformatting for more consistent coding style
452  * make country search term creation part of setup
453  * update country names and country grid
454  * handle roads that cross boundaries better
455  * keep full information on address tags
456  * update to refactored osm2pgsql which use libosmium based types
457  * switch from osmosis to pyosmium for updates
458  * be more strict when matching against special search terms
459  * handle postcode entries with multiple values correctly
460
461 2.5
462
463  * reverse geocoding includes looking up housenumbers from Tiger data
464  * added parameter to return simplified geometries
465  * new lookup call for getting address information for OSM objects
466  * new namedetails and extratags parameters that expose the name and extratags
467    fields of the placex table
468  * mobile website
469  * reverse web view
470
471 2.4
472
473  * drop support for postgres 8.4
474  * rewrite address interpolation
475  * switch to C++ version of osm2pgsql and rewrite tag filtering
476  * support for bridge:name and tunnel:name, man_made, junction
477  * drop way-node index (reduces database size by about 15%)
478  * add support for configuring tablespaces and webserver user
479  * better evaluation of search queries in right-to-left notation
480  * improve house number search for streets with many duplicate entries
481  * code cleanup (remove unused functions and tables)
482
483 2.3
484
485  * further improve ordering of results
486  * support for more lat/lon formats in search-as-reverse
487  * fix handling of GB postcodes
488  * new functional test suite
489  * support for waterway relations
490  * inherit postcodes from street to poi
491  * fix housenumber normalisation to find non-latin house numbers
492  * take viewbox into account for ordering of results
493  * pois may now inherit address tags from surrounding buildings
494  * improve what objects may participate in an address
495  * clean up handled class/type combinations to current OSM usage
496  * lots of bug fixes
497
498 2.2
499
500  * correct database rights for www-data
501  * add timestamps for update output
502  * load postgis via extension for postgis >= 2.0
503  * remove non-admin boundaries from addresses
504  * further improve ordering of results with same importance
505  * merge addr:postcode tags into object addresses
506  * include rank and importance in reverse geocode output
507  * replace ST_Line_Interpolate_Point with ST_LineInterpolatePoint
508   (for postgis >= 2.1)
509  * update osm2pgsql to latest version
510  * properly detect changes of admin_level
511  * remove landuses when name is removed
512  * smaller fixes
513
514 2.1
515
516  * update to openlayers 2.12 (now custom built)
517  * update fallback OSM boundaries
518  * add support for postgresql 9.2/9.3 and postgis 2.x
519  * add structured queries
520  * add options for polygon output in various formats
521    (geojson, svg, kml, postgis text)
522  * maintenance functions for deleting objects and updating regions
523    (plcae_force_update/place_force_delete)
524  * web view for polygons that need deleting
525  * rate limiting using memcache
526  * improve layout of details page
527  * add support for boundary:postal_code
528  * full CORS support
529  * improve parenting of POIs
530  * support for extract daily diffs from Geofabrik
531  * support for addresses without a street
532    (addr:place and conscription number house numbers)
533  * improve layout of word and search_name_* tables
534  * support for US ZIP+4 codes
535  * refactoring of front-end PHP code
536  * lots of smaller bug fixes
537
538 2.0.1
539
540  * delete outdated entries from location_area_country
541  * remove remaining uses of INTEGER, to allow node ids larger than 2^31