]> git.openstreetmap.org Git - nominatim.git/log
nominatim.git
16 months agouse coalsce() instead of indexless postgis functions
Sarah Hoffmann [Sat, 12 Aug 2023 17:14:13 +0000 (19:14 +0200)]
use coalsce() instead of indexless postgis functions

ST_Intersects is deemed too expensive by the query planer which
leads to odd plans when index use is avoided.

16 months agodo not use index when searching in large areas
Sarah Hoffmann [Sat, 12 Aug 2023 14:12:44 +0000 (16:12 +0200)]
do not use index when searching in large areas

This concerns viewboxes as well as radius search.

16 months agoadapt tests to changes in search
Sarah Hoffmann [Sat, 12 Aug 2023 14:12:31 +0000 (16:12 +0200)]
adapt tests to changes in search

16 months agotake token_assignment penalty into account
Sarah Hoffmann [Sat, 12 Aug 2023 13:33:50 +0000 (15:33 +0200)]
take token_assignment penalty into account

Also computes the expected count differently when addresses are
involved. Address token counts do not bare a direct relation to
real counts.

16 months agofix debug output for NearSearch
Sarah Hoffmann [Sat, 12 Aug 2023 09:27:55 +0000 (11:27 +0200)]
fix debug output for NearSearch

The search info is in a subsearch and was therefore not taken into
account.

16 months agoimprove penalty for token-split words
Sarah Hoffmann [Sat, 12 Aug 2023 09:26:02 +0000 (11:26 +0200)]
improve penalty for token-split words

The rematch penalty for partial words created by the transliteration
need to take into account that they are rematched against the full word.
That means that missing beginning and end should not get a significant
penalty.

16 months agofix lookup polygon output
Sarah Hoffmann [Tue, 8 Aug 2023 17:42:55 +0000 (19:42 +0200)]
fix lookup polygon output

Fixes #3147.

16 months agoMerge pull request #3146 from lonvia/forbid-mixed-queries
Sarah Hoffmann [Tue, 8 Aug 2023 15:34:32 +0000 (17:34 +0200)]
Merge pull request #3146 from lonvia/forbid-mixed-queries

Do not allow to mix structured and unstructured search

16 months agoreturn an error when q is used together with structured parameters
Sarah Hoffmann [Tue, 8 Aug 2023 13:54:55 +0000 (15:54 +0200)]
return an error when q is used together with structured parameters

16 months agoremove lookup by address only
Sarah Hoffmann [Sun, 6 Aug 2023 17:20:10 +0000 (19:20 +0200)]
remove lookup by address only

There are too many lookups where the address is very frequent,
even when many address parts are present.

16 months agoallow oversized viewboxes again
Sarah Hoffmann [Sun, 6 Aug 2023 15:47:47 +0000 (17:47 +0200)]
allow oversized viewboxes again

This seems to be a rather regular thing when unconditionally sending
the current view and being zoomed out.

Fixes #3137.

16 months agoprovide full URL in more field
Sarah Hoffmann [Sun, 6 Aug 2023 15:20:16 +0000 (17:20 +0200)]
provide full URL in more field

This is a regression against the PHP version.

Fixes #3138.

16 months agoremove SQL lambdas with IN expressions
Sarah Hoffmann [Wed, 2 Aug 2023 10:34:07 +0000 (12:34 +0200)]
remove SQL lambdas with IN expressions

The values of IN expressions are incorrectly cached.

16 months agoonly print non-empty search tables
Sarah Hoffmann [Tue, 1 Aug 2023 13:29:00 +0000 (15:29 +0200)]
only print non-empty search tables

16 months agodo not lookup by address vector when only few tokens are available
Sarah Hoffmann [Mon, 31 Jul 2023 12:27:39 +0000 (14:27 +0200)]
do not lookup by address vector when only few tokens are available

Names of countries and states are exceedingly rare in the word count
but are very frequent in the address. A short name has the danger
of producing too many results.

16 months agofix regression with lat/lon in json output
Sarah Hoffmann [Tue, 1 Aug 2023 10:21:11 +0000 (12:21 +0200)]
fix regression with lat/lon in json output

lat, lon is returned as strings in the PHP output. Reproduce that in the
Python frontend.

See #3115.

16 months agoallow OPTIONS method in starlette CORS middleware
Sarah Hoffmann [Tue, 1 Aug 2023 09:12:36 +0000 (11:12 +0200)]
allow OPTIONS method in starlette CORS middleware

If not allowed, then the middleware will return a 400 on pre-flight
CORS requests.

Fixes #3129.

16 months agoMerge pull request #3122 from miku0/sanitizer-final
Sarah Hoffmann [Tue, 1 Aug 2023 08:38:58 +0000 (10:38 +0200)]
Merge pull request #3122 from miku0/sanitizer-final

Adds sanitizer for Japanese addresses to correspond to block address

16 months agoMoved KANJI_MAP to icu-rules
miku0 [Mon, 31 Jul 2023 11:57:49 +0000 (11:57 +0000)]
Moved KANJI_MAP to icu-rules

16 months agoMerge pull request #3128 from lonvia/fix-classtype-lookup
Sarah Hoffmann [Mon, 31 Jul 2023 08:20:58 +0000 (10:20 +0200)]
Merge pull request #3128 from lonvia/fix-classtype-lookup

Fix query over classtype tables

16 months agoAdd the test of reconbine_place
miku0 [Mon, 31 Jul 2023 02:39:56 +0000 (02:39 +0000)]
Add the test of reconbine_place

16 months agoFixed cosmetic issues
miku0 [Mon, 31 Jul 2023 02:39:04 +0000 (02:39 +0000)]
Fixed cosmetic issues

16 months agofix query over classtype tables
Sarah Hoffmann [Sun, 30 Jul 2023 21:51:36 +0000 (23:51 +0200)]
fix query over classtype tables

The case statement prevented the index on the classtype tables
from being used. Move the case statement inside the geometry
function instead.

16 months agoMerge pull request #3127 from lonvia/file-logging
Sarah Hoffmann [Sun, 30 Jul 2023 19:22:48 +0000 (21:22 +0200)]
Merge pull request #3127 from lonvia/file-logging

Add file logging for Python frontend

16 months agoreintroduce file logging for Python frontend
Sarah Hoffmann [Sun, 30 Jul 2023 17:58:00 +0000 (19:58 +0200)]
reintroduce file logging for Python frontend

16 months agoadd @fail-legacy
miku0 [Thu, 27 Jul 2023 07:33:53 +0000 (07:33 +0000)]
add @fail-legacy

16 months agoMoved KANJI_MAP to global variable
miku0 [Wed, 26 Jul 2023 21:43:22 +0000 (21:43 +0000)]
Moved KANJI_MAP to global variable

16 months agoMerge pull request #3125 from lonvia/warm-to-python
Sarah Hoffmann [Wed, 26 Jul 2023 20:37:37 +0000 (22:37 +0200)]
Merge pull request #3125 from lonvia/warm-to-python

Port warm and export functions to Python

16 months agoolder version of Postgres cannot convert jsonb to int
Sarah Hoffmann [Wed, 26 Jul 2023 15:45:21 +0000 (17:45 +0200)]
older version of Postgres cannot convert jsonb to int

16 months agoolder Python versions need a reference to the loop for a lock
Sarah Hoffmann [Wed, 26 Jul 2023 13:17:18 +0000 (15:17 +0200)]
older Python versions need a reference to the loop for a lock

16 months agoCorrection to PR's comment
miku0 [Wed, 26 Jul 2023 09:50:25 +0000 (09:50 +0000)]
Correction to PR's comment

16 months agoadd tests for new arm and export Python functions
Sarah Hoffmann [Wed, 26 Jul 2023 09:09:52 +0000 (11:09 +0200)]
add tests for new arm and export Python functions

16 months agoadd japanese sanitizer
miku0 [Wed, 26 Jul 2023 07:54:58 +0000 (07:54 +0000)]
add japanese sanitizer

16 months agomostly remove php-cgi requirement
Sarah Hoffmann [Tue, 25 Jul 2023 22:10:11 +0000 (00:10 +0200)]
mostly remove php-cgi requirement

This is now only needed for BDD tests against the php API.

16 months agoremove now unused run_api_script function
Sarah Hoffmann [Tue, 25 Jul 2023 20:45:29 +0000 (22:45 +0200)]
remove now unused run_api_script function

16 months agoremove now unused run_legacy_script()
Sarah Hoffmann [Thu, 20 Jul 2023 10:14:19 +0000 (12:14 +0200)]
remove now unused run_legacy_script()

16 months agoport export function to Python
Sarah Hoffmann [Mon, 17 Jul 2023 20:37:07 +0000 (22:37 +0200)]
port export function to Python

Some of the parameters have been renoved as they don't make sense
anymore.

16 months agomove warm script to python code
Sarah Hoffmann [Sun, 16 Jul 2023 18:12:53 +0000 (20:12 +0200)]
move warm script to python code

16 months agoMerge pull request #3121 from lonvia/port-remaining-api-calls
Sarah Hoffmann [Tue, 25 Jul 2023 18:56:38 +0000 (20:56 +0200)]
Merge pull request #3121 from lonvia/port-remaining-api-calls

Port remaining API endpoints to Python

16 months agoadd tests for new endpoints
Sarah Hoffmann [Tue, 25 Jul 2023 08:57:19 +0000 (10:57 +0200)]
add tests for new endpoints

17 months agoadd /polygons endpoint to Python v1 API
Sarah Hoffmann [Sat, 22 Jul 2023 18:59:13 +0000 (20:59 +0200)]
add /polygons endpoint to Python v1 API

17 months agoadd deletable endpoint
Sarah Hoffmann [Sat, 22 Jul 2023 15:21:24 +0000 (17:21 +0200)]
add deletable endpoint

17 months agoremove debug print
Sarah Hoffmann [Sat, 22 Jul 2023 11:54:23 +0000 (13:54 +0200)]
remove debug print

17 months agoMerge pull request #3117 from lonvia/fix-assorted-search-errors
Sarah Hoffmann [Sat, 22 Jul 2023 09:45:36 +0000 (11:45 +0200)]
Merge pull request #3117 from lonvia/fix-assorted-search-errors

More improvements to the Python search algorithm

17 months agodisallow special housenumber search with a single frequent partial
Sarah Hoffmann [Thu, 20 Jul 2023 16:05:54 +0000 (18:05 +0200)]
disallow special housenumber search with a single frequent partial

17 months agodo not split names from typed phrases
Sarah Hoffmann [Mon, 17 Jul 2023 14:25:39 +0000 (16:25 +0200)]
do not split names from typed phrases

When phrases are typed, they should only contain exactly one term.

17 months agosplit up get_assignment functon in more readable parts
Sarah Hoffmann [Mon, 17 Jul 2023 13:17:54 +0000 (15:17 +0200)]
split up get_assignment functon in more readable parts

17 months agodisallow address searches that start with a postcode
Sarah Hoffmann [Mon, 17 Jul 2023 09:45:35 +0000 (11:45 +0200)]
disallow address searches that start with a postcode

These are postcode searches and nothing else.

17 months agoblock search queries with too many tokens
Sarah Hoffmann [Sat, 15 Jul 2023 14:31:39 +0000 (16:31 +0200)]
block search queries with too many tokens

17 months agosimplify yield_lookups() function
Sarah Hoffmann [Sat, 15 Jul 2023 09:41:31 +0000 (11:41 +0200)]
simplify yield_lookups() function

Move creation of field lookups in separate functions to make the code
more readable.

17 months agopenalize name token splitting when phrases are used
Sarah Hoffmann [Sat, 15 Jul 2023 08:55:34 +0000 (10:55 +0200)]
penalize name token splitting when phrases are used

17 months agopenalize search with frequent partials
Sarah Hoffmann [Fri, 14 Jul 2023 19:55:07 +0000 (21:55 +0200)]
penalize search with frequent partials

Avoid search against frequent partials if we have already looked for
the full name equivalents.

17 months agoavoid splitting of first token when a housenumber is present
Sarah Hoffmann [Fri, 14 Jul 2023 19:05:13 +0000 (21:05 +0200)]
avoid splitting of first token when a housenumber is present

This only covers the case of <poi name> <street name> <housenumber>
which is exceedingly rare.

17 months agoincrease threshold for full name searches
Sarah Hoffmann [Fri, 14 Jul 2023 19:03:42 +0000 (21:03 +0200)]
increase threshold for full name searches

They still should be preferrred over expensive partial name searches.

17 months agofix search for housenumber names
Sarah Hoffmann [Thu, 13 Jul 2023 14:43:56 +0000 (16:43 +0200)]
fix search for housenumber names

The search still included a lookup of housenumbers in children which is
wrong.

17 months agoMerge pull request #3112 from jenkin/fix-polgyon-polygon-typo
Sarah Hoffmann [Mon, 17 Jul 2023 12:20:14 +0000 (14:20 +0200)]
Merge pull request #3112 from jenkin/fix-polgyon-polygon-typo

fix polgyon polygon typo

17 months agofix polgyon polygon typo
Alessio Cimarelli [Mon, 17 Jul 2023 08:11:57 +0000 (10:11 +0200)]
fix polgyon polygon typo

17 months agoMerge pull request #3110 from lonvia/sql-lambda-queries
Sarah Hoffmann [Fri, 14 Jul 2023 16:57:31 +0000 (18:57 +0200)]
Merge pull request #3110 from lonvia/sql-lambda-queries

Use SQLAlchemy's lambda statements

17 months agoselected lambdas for search
Sarah Hoffmann [Wed, 12 Jul 2023 19:16:46 +0000 (21:16 +0200)]
selected lambdas for search

17 months agoadd lambdas for layer filters
Sarah Hoffmann [Wed, 12 Jul 2023 12:33:29 +0000 (14:33 +0200)]
add lambdas for layer filters

17 months agoavoid forwarding variables via SQL
Sarah Hoffmann [Wed, 12 Jul 2023 12:04:30 +0000 (14:04 +0200)]
avoid forwarding variables via SQL

17 months agomake SQL statements in reverse lambda functions
Sarah Hoffmann [Wed, 12 Jul 2023 09:46:07 +0000 (11:46 +0200)]
make SQL statements in reverse lambda functions

Further improves internal caching of statements by SQLAlchemy.

17 months agoMerge pull request #3096 from alfmarcua/search-within-countries-parameter
Sarah Hoffmann [Wed, 12 Jul 2023 15:45:55 +0000 (17:45 +0200)]
Merge pull request #3096 from alfmarcua/search-within-countries-parameter

Parameterise the search only within countries

17 months agoSplit lookupInCountry in two functions and document NOMINATIM_SEARCH_WITHIN_COUNTRIES...
alfmarcua [Thu, 6 Jul 2023 06:52:12 +0000 (08:52 +0200)]
Split lookupInCountry in two functions and document NOMINATIM_SEARCH_WITHIN_COUNTRIES parameter

17 months agoParameterise the search only within countries
alfmarcua [Thu, 6 Jul 2023 06:52:41 +0000 (08:52 +0200)]
Parameterise the search only within countries

17 months agoMerge pull request #3109 from lonvia/prepared-statements
Sarah Hoffmann [Mon, 10 Jul 2023 09:45:29 +0000 (11:45 +0200)]
Merge pull request #3109 from lonvia/prepared-statements

Make prepared statements work with Python API

17 months agoavoid index-use on rank parameters for reverse lookups
Sarah Hoffmann [Sat, 8 Jul 2023 19:47:07 +0000 (21:47 +0200)]
avoid index-use on rank parameters for reverse lookups

17 months agoforce a fixed pool size and make it configurable
Sarah Hoffmann [Sat, 8 Jul 2023 17:38:54 +0000 (19:38 +0200)]
force a fixed pool size and make it configurable

17 months agouse constant expressions to select partial indexes in reverse
Sarah Hoffmann [Sat, 8 Jul 2023 14:28:51 +0000 (16:28 +0200)]
use constant expressions to select partial indexes in reverse

When expressions are generated with SQLAlchemy, any constants are
replaced with bind parameters. The bind parameters become parameters of
prepared statements. The result is that the query planner tends to
oversee that the partial indexes can be used.

17 months agoremove disabling of prepared statements
Sarah Hoffmann [Sat, 8 Jul 2023 13:59:15 +0000 (15:59 +0200)]
remove disabling of prepared statements

Fixes for query planning with prepared statements to follow in
subsequent commits.

17 months agoMerge pull request #3107 from lonvia/performance-search
Sarah Hoffmann [Sat, 8 Jul 2023 13:53:42 +0000 (15:53 +0200)]
Merge pull request #3107 from lonvia/performance-search

Assorted fixes to Python search code

17 months agoincrease minimum required SQLAlchemy version to 1.4.31
Sarah Hoffmann [Thu, 6 Jul 2023 12:15:51 +0000 (14:15 +0200)]
increase minimum required SQLAlchemy version to 1.4.31

17 months agomake get_addressdata calls cachable
Sarah Hoffmann [Thu, 6 Jul 2023 08:54:56 +0000 (10:54 +0200)]
make get_addressdata calls cachable

VALUEs() is not a cachable construct in SQLAlchemy, so use arrays
instead. Also add a special case for single results, the usual result
for reverse queries.

17 months agoadd support for postcompile literals in debug output
Sarah Hoffmann [Thu, 6 Jul 2023 07:29:20 +0000 (09:29 +0200)]
add support for postcompile literals in debug output

17 months agofix SRID handling in Geometry type
Sarah Hoffmann [Tue, 4 Jul 2023 14:08:18 +0000 (16:08 +0200)]
fix SRID handling in Geometry type

17 months agoavoid lookup via partials on frequent words
Sarah Hoffmann [Wed, 5 Jul 2023 12:07:11 +0000 (14:07 +0200)]
avoid lookup via partials on frequent words

Drops expensive searches via partials on terms like 'rue de'.

See #2979.

17 months agoadd a small penalty to lookups in address vectors
Sarah Hoffmann [Tue, 4 Jul 2023 14:54:42 +0000 (16:54 +0200)]
add a small penalty to lookups in address vectors

17 months agoMerge pull request #3101 from lonvia/custom-geometry-type
Sarah Hoffmann [Mon, 3 Jul 2023 09:03:26 +0000 (11:03 +0200)]
Merge pull request #3101 from lonvia/custom-geometry-type

Improve use of SQLAlchemy statement cache with search queries

17 months agomake types compatible with older Python versions
Sarah Hoffmann [Sun, 2 Jul 2023 21:05:15 +0000 (23:05 +0200)]
make types compatible with older Python versions

17 months agoremove GeoAlchemy as dependency
Sarah Hoffmann [Sat, 1 Jul 2023 16:16:23 +0000 (18:16 +0200)]
remove GeoAlchemy as dependency

17 months agoalways run function update on migrations
Sarah Hoffmann [Sat, 1 Jul 2023 16:13:30 +0000 (18:13 +0200)]
always run function update on migrations

This means that we can have migrations which require nothing but
an update of the functions.

17 months agofix linting issues
Sarah Hoffmann [Sat, 1 Jul 2023 16:02:46 +0000 (18:02 +0200)]
fix linting issues

17 months agoreplace regexp_match with generic op() functions
Sarah Hoffmann [Fri, 30 Jun 2023 12:41:01 +0000 (14:41 +0200)]
replace regexp_match with generic op() functions

Works around a bug in SQLAlchemy where regexp_match creates an
unstable cache key.

17 months agoreplace CASE construct with plpgsql function
Sarah Hoffmann [Wed, 28 Jun 2023 12:27:35 +0000 (14:27 +0200)]
replace CASE construct with plpgsql function

17 months agoband-aid for SQLAlchemy 1.4
Sarah Hoffmann [Mon, 26 Jun 2023 19:37:17 +0000 (21:37 +0200)]
band-aid for SQLAlchemy 1.4

17 months agomove search to bind parameters
Sarah Hoffmann [Mon, 26 Jun 2023 13:56:10 +0000 (15:56 +0200)]
move search to bind parameters

17 months agoswitch reverse() to new Geometry datatype
Sarah Hoffmann [Sun, 25 Jun 2023 12:02:00 +0000 (14:02 +0200)]
switch reverse() to new Geometry datatype

Also switches to using bind parameters for recurring parameters.

17 months agointroduce slim Geometry database type
Sarah Hoffmann [Sun, 25 Jun 2023 07:38:44 +0000 (09:38 +0200)]
introduce slim Geometry database type

17 months agoMerge pull request #3100 from lonvia/fix-name-merging-in-unnamed-boundaries
Sarah Hoffmann [Sat, 1 Jul 2023 13:36:56 +0000 (15:36 +0200)]
Merge pull request #3100 from lonvia/fix-name-merging-in-unnamed-boundaries

Fix merging of linked names into unnamed boundaries

17 months agofix merging of linked names into unnamed boundaries
Sarah Hoffmann [Fri, 30 Jun 2023 20:14:11 +0000 (22:14 +0200)]
fix merging of linked names into unnamed boundaries

The NULL value of the boundaries' name field was erasing all
content when used in SQL operations.

17 months agoMerge pull request #3099 from lonvia/determine-place-address-from-tokenizer
Sarah Hoffmann [Fri, 30 Jun 2023 19:47:57 +0000 (21:47 +0200)]
Merge pull request #3099 from lonvia/determine-place-address-from-tokenizer

Use information from tokenizer to determine street vs. place address

17 months agoalso switch legacy tokenizer to new street/place choice behaviour
Sarah Hoffmann [Fri, 30 Jun 2023 13:28:00 +0000 (15:28 +0200)]
also switch legacy tokenizer to new street/place choice behaviour

17 months agofix optional string representation or repr(PlaceName)
Sarah Hoffmann [Thu, 29 Jun 2023 20:02:55 +0000 (22:02 +0200)]
fix optional string representation or repr(PlaceName)

17 months agouse information from tokenizer to determine street vs. place address
Sarah Hoffmann [Fri, 30 Jun 2023 09:08:25 +0000 (11:08 +0200)]
use information from tokenizer to determine street vs. place address

So far the SQL logic used the information from the address field
to determine if an address is attached to a street or place.
This changes the logic to use the information provided in the
token_info. This allows sanitizers to enforce a certain parenting
without changing the visible address information.

18 months agoMerge pull request #3094 from lonvia/fix-failing-bdd-tests
Sarah Hoffmann [Thu, 22 Jun 2023 20:28:31 +0000 (22:28 +0200)]
Merge pull request #3094 from lonvia/fix-failing-bdd-tests

Add BDD tests against Python frontend to CI

18 months agoMerge pull request #3090 from mtmail/check-database-on-frozen-database
Sarah Hoffmann [Thu, 22 Jun 2023 18:11:30 +0000 (20:11 +0200)]
Merge pull request #3090 from mtmail/check-database-on-frozen-database

check-database on frozen db shouldnt recommend indexing

18 months agoadd python frontend tests to CI
Sarah Hoffmann [Thu, 22 Jun 2023 15:29:44 +0000 (17:29 +0200)]
add python frontend tests to CI

18 months agoslightly adapt postcode tests
Sarah Hoffmann [Thu, 22 Jun 2023 14:51:59 +0000 (16:51 +0200)]
slightly adapt postcode tests

18 months agobdd: fix faking HTTP headers for python web frameworks
Sarah Hoffmann [Wed, 21 Jun 2023 09:33:42 +0000 (11:33 +0200)]
bdd: fix faking HTTP headers for python web frameworks

18 months agoMerge branch 'osm-search:master' into check-database-on-frozen-database
mtmail [Thu, 22 Jun 2023 10:14:55 +0000 (12:14 +0200)]
Merge branch 'osm-search:master' into check-database-on-frozen-database