From: Sarah Hoffmann Date: Fri, 23 Apr 2021 15:02:47 +0000 (+0200) Subject: introduce index for finding surrounding buildings X-Git-Tag: v4.0.0~93^2~26 X-Git-Url: https://git.openstreetmap.org./nominatim.git/commitdiff_plain/1b1ed820c3af58de7281607a8b82f6a5dfe37319?ds=inline introduce index for finding surrounding buildings --- diff --git a/lib-sql/functions/placex_triggers.sql b/lib-sql/functions/placex_triggers.sql index 5ffd4e4b..dba301cb 100644 --- a/lib-sql/functions/placex_triggers.sql +++ b/lib-sql/functions/placex_triggers.sql @@ -26,8 +26,9 @@ BEGIN FROM placex WHERE ST_Covers(geometry, p.centroid) and geometry && p.centroid + and placex.address is not null and (placex.address ? 'housenumber' or placex.address ? 'street' or placex.address ? 'place') - and rank_search > 28 AND ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') + and rank_search = 30 AND ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon') LIMIT 1; RAISE WARNING 'other address for % %: % (%)', p.osm_type, p.osm_id, address, p.centroid; END IF; diff --git a/lib-sql/tables.sql b/lib-sql/tables.sql index c254e2d4..9732c26c 100644 --- a/lib-sql/tables.sql +++ b/lib-sql/tables.sql @@ -154,6 +154,10 @@ CREATE INDEX idx_placex_osmid ON placex USING BTREE (osm_type, osm_id) {{db.tabl CREATE INDEX idx_placex_linked_place_id ON placex USING BTREE (linked_place_id) {{db.tablespace.address_index}} WHERE linked_place_id IS NOT NULL; CREATE INDEX idx_placex_rank_search ON placex USING BTREE (rank_search, geometry_sector) {{db.tablespace.address_index}}; CREATE INDEX idx_placex_geometry ON placex USING GIST (geometry) {{db.tablespace.search_index}}; +CREATE INDEX idx_placex_geometry_buildings ON placex + USING GIST (geometry) {{db.tablespace.search_index}} + WHERE address is not null and rank_search = 30 + and ST_GeometryType(geometry) in ('ST_Polygon','ST_MultiPolygon'); CREATE INDEX idx_placex_geometry_placenode ON placex USING GIST (geometry) {{db.tablespace.search_index}} WHERE osm_type = 'N' and rank_search < 26