mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-16 05:18:00 +00:00
move ordering out of getNearFeatures
The two places where the function is called have different ordering requirement.
This commit is contained in:
@@ -307,7 +307,13 @@ BEGIN
|
||||
END LOOP;
|
||||
|
||||
FOR location IN
|
||||
SELECT * FROM getNearFeatures(partition, geometry, maxrank, isin_tokens)
|
||||
SELECT * FROM getNearFeatures(partition, geometry, maxrank)
|
||||
ORDER BY rank_address, isin_tokens && keywords desc, isguess asc,
|
||||
distance *
|
||||
CASE WHEN rank_address = 16 AND rank_search = 15 THEN 0.2
|
||||
WHEN rank_address = 16 AND rank_search = 16 THEN 0.25
|
||||
WHEN rank_address = 16 AND rank_search = 18 THEN 0.5
|
||||
ELSE 1 END ASC
|
||||
LOOP
|
||||
IF location.rank_address != current_rank_address THEN
|
||||
current_rank_address := location.rank_address;
|
||||
|
||||
@@ -27,8 +27,8 @@ BEGIN
|
||||
NEW.parent_place_id = 0;
|
||||
FOR location IN
|
||||
SELECT place_id
|
||||
FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search, '{}'::int[])
|
||||
WHERE NOT isguess ORDER BY rank_address DESC LIMIT 1
|
||||
FROM getNearFeatures(partition, NEW.geometry, NEW.rank_search)
|
||||
WHERE NOT isguess ORDER BY rank_address DESC, distance asc LIMIT 1
|
||||
LOOP
|
||||
NEW.parent_place_id = location.place_id;
|
||||
END LOOP;
|
||||
|
||||
Reference in New Issue
Block a user