From 46ae96b608437f428fc310912268b0ab7190fc6f Mon Sep 17 00:00:00 2001 From: Brian Quinion Date: Fri, 11 Mar 2011 14:01:18 +0000 Subject: [PATCH] preserve importance in search_name --- sql/partitions.src.sql | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/sql/partitions.src.sql b/sql/partitions.src.sql index 389d7c7f..e31eadff 100644 --- a/sql/partitions.src.sql +++ b/sql/partitions.src.sql @@ -56,11 +56,12 @@ BEGIN -- start IF in_partition = -partition- THEN FOR r IN - SELECT place_id, keywords, rank_address, rank_search, ST_Distance(point, centroid) as distance FROM ( + SELECT place_id, keywords, rank_address, rank_search, min(ST_Distance(point, centroid)) as distance FROM ( SELECT * FROM location_area_large_-partition- WHERE ST_Contains(geometry, point) and rank_search < maxrank UNION ALL SELECT * FROM location_area_country WHERE ST_Contains(geometry, point) and rank_search < maxrank ) as location_area + GROUP BY place_id, keywords, rank_address, rank_search, isguess, centroid ORDER BY rank_address desc, isin_tokens && keywords desc, isguess asc, ST_Distance(point, centroid) * CASE @@ -186,18 +187,18 @@ LANGUAGE plpgsql; create or replace function insertSearchName( in_partition INTEGER, in_place_id integer, in_country_code VARCHAR(2), in_name_vector INTEGER[], in_nameaddress_vector INTEGER[], - in_rank_search INTEGER, in_rank_address INTEGER, + in_rank_search INTEGER, in_rank_address INTEGER, in_importance FLOAT, in_centroid GEOMETRY) RETURNS BOOLEAN AS $$ DECLARE BEGIN DELETE FROM search_name WHERE place_id = in_place_id; - INSERT INTO search_name values (in_place_id, in_rank_search, in_rank_address, 0, in_country_code, + INSERT INTO search_name values (in_place_id, in_rank_search, in_rank_address, in_importance, in_country_code, in_name_vector, in_nameaddress_vector, in_centroid); IF in_rank_search <= 4 THEN DELETE FROM search_name_country WHERE place_id = in_place_id; - INSERT INTO search_name_country values (in_place_id, in_rank_search, in_rank_address, 0, in_country_code, + INSERT INTO search_name_country values (in_place_id, in_rank_search, in_rank_address, in_importance, in_country_code, in_name_vector, in_nameaddress_vector, in_centroid); RETURN TRUE; END IF; -- 2.45.2