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.
This commit is contained in:
Sarah Hoffmann
2018-06-14 00:11:19 +02:00
parent 87ee3a6f58
commit 743ec43460
2 changed files with 21 additions and 2 deletions

View File

@@ -96,7 +96,7 @@ BEGIN
SELECT place_id, name_vector, address_rank, search_rank, SELECT place_id, name_vector, address_rank, search_rank,
ST_Distance(centroid, point) as distance, null as isguess ST_Distance(centroid, point) as distance, null as isguess
FROM search_name_-partition- FROM search_name_-partition-
WHERE name_vector @> isin_token WHERE name_vector && isin_token
AND ST_DWithin(centroid, point, 0.015) AND ST_DWithin(centroid, point, 0.015)
AND search_rank between 26 and 27 AND search_rank between 26 and 27
ORDER BY distance ASC limit 1 ORDER BY distance ASC limit 1
@@ -124,7 +124,7 @@ BEGIN
SELECT place_id, name_vector, address_rank, search_rank, SELECT place_id, name_vector, address_rank, search_rank,
ST_Distance(centroid, point) as distance, null as isguess ST_Distance(centroid, point) as distance, null as isguess
FROM search_name_-partition- FROM search_name_-partition-
WHERE name_vector @> isin_token WHERE name_vector && isin_token
AND ST_DWithin(centroid, point, 0.03) AND ST_DWithin(centroid, point, 0.03)
AND search_rank between 16 and 22 AND search_rank between 16 and 22
ORDER BY distance ASC limit 1 ORDER BY distance ASC limit 1

View File

@@ -441,3 +441,22 @@ Feature: Parenting of objects
| object | parent_place_id | | object | parent_place_id |
| N1 | W2 | | 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 |