move ordering out of getNearFeatures

The two places where the function is called have different ordering
requirement.
This commit is contained in:
Sarah Hoffmann
2020-10-13 14:57:11 +02:00
parent 4e7ec92d6f
commit 5ec48c66cb
3 changed files with 10 additions and 11 deletions

View File

@@ -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;

View File

@@ -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;