From: Sarah Hoffmann Date: Wed, 13 Jun 2018 22:11:19 +0000 (+0200) Subject: nearest place search should match any of given tokens not all X-Git-Tag: v3.2.0~68 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/743ec4346096fa6484142d6fe3d4386dd1545db9 nearest place search should match any of given tokens not all When multiple isin tokens are given, then these are duplicates and it is enough that any one of them is found in the name_vector. Fixes #1056. --- diff --git a/sql/partition-functions.src.sql b/sql/partition-functions.src.sql index cc11cf96..9ae020e4 100644 --- a/sql/partition-functions.src.sql +++ b/sql/partition-functions.src.sql @@ -96,7 +96,7 @@ BEGIN SELECT place_id, name_vector, address_rank, search_rank, ST_Distance(centroid, point) as distance, null as isguess FROM search_name_-partition- - WHERE name_vector @> isin_token + WHERE name_vector && isin_token AND ST_DWithin(centroid, point, 0.015) AND search_rank between 26 and 27 ORDER BY distance ASC limit 1 @@ -124,7 +124,7 @@ BEGIN SELECT place_id, name_vector, address_rank, search_rank, ST_Distance(centroid, point) as distance, null as isguess FROM search_name_-partition- - WHERE name_vector @> isin_token + WHERE name_vector && isin_token AND ST_DWithin(centroid, point, 0.03) AND search_rank between 16 and 22 ORDER BY distance ASC limit 1 diff --git a/test/bdd/db/import/parenting.feature b/test/bdd/db/import/parenting.feature index 87467fd2..a3648539 100644 --- a/test/bdd/db/import/parenting.feature +++ b/test/bdd/db/import/parenting.feature @@ -441,3 +441,22 @@ Feature: Parenting of objects | object | parent_place_id | | N1 | W2 | + # github #1056 + Scenario: Full names should be preferably matched for nearest road + Given the grid + | 1 | | 2 | 5 | + | | | | | + | 3 | | | 4 | + | | 10| | | + And the places + | osm | class | type | name+name | geometry | + | W1 | highway | residential | Via Cavassico superiore | 1, 2 | + | W3 | highway | residential | Via Cavassico superiore | 2, 5 | + | W2 | highway | primary | Via Frazione Cavassico | 3, 4 | + And the named places + | osm | class | type | addr+street | + | N10 | shop | yes | Via Cavassico superiore | + When importing + Then placex contains + | object | parent_place_id | + | N10 | W1 |