Compare commits

...

6 Commits

Author SHA1 Message Date
Sarah Hoffmann
1aeb8a262c Merge pull request #3774 from lonvia/remove-postcodes-from-nameaddressvector
Do not add postcodes from postcode boundaries to address vector
2025-07-08 17:23:05 +02:00
Sarah Hoffmann
ef7e842702 Merge pull request #3773 from lonvia/small-countries
Reduce area for geometry rank for very small countries
2025-07-08 15:01:37 +02:00
Sarah Hoffmann
ec42fda1bd do not add postcodes from postcode boundaries to address vector
Postcodes will be found through a special search, so we can save
the space.
2025-07-08 14:49:16 +02:00
Sarah Hoffmann
287ba2570e reduce area for geometry rank for very small countries 2025-07-08 13:50:20 +02:00
Sarah Hoffmann
4711deeccb Merge pull request #3772 from lonvia/fix-index-use-deletable
split up query for deletable endpoint by osm type
2025-07-08 13:49:31 +02:00
Sarah Hoffmann
cf9e8d6b8e split up query for deletable endpoint by osm type
This is needed to ensure index use on placex.
2025-07-08 11:03:29 +02:00
3 changed files with 18 additions and 9 deletions

View File

@@ -638,8 +638,10 @@ BEGIN
-- Add it to the list of search terms
{% if not db.reverse_only %}
nameaddress_vector := array_merge(nameaddress_vector,
location.keywords::integer[]);
IF location.rank_address != 11 AND location.rank_address != 5 THEN
nameaddress_vector := array_merge(nameaddress_vector,
location.keywords::integer[]);
END IF;
{% endif %}
INSERT INTO place_addressline (place_id, address_place_id, fromarea,

View File

@@ -88,6 +88,10 @@ BEGIN
area := area / 3;
ELSIF country_code IN ('bo', 'ar', 'sd', 'mn', 'in', 'et', 'cd', 'mz', 'ly', 'cl', 'zm') THEN
area := area / 2;
ELSIF country_code IN ('sg', 'ws', 'st', 'kn') THEN
area := area * 5;
ELSIF country_code IN ('dm', 'mt', 'lc', 'gg', 'sc', 'nr') THEN
area := area * 20;
END IF;
IF area > 1 THEN

View File

@@ -374,14 +374,17 @@ async def deletable_endpoint(api: NominatimAPIAsync, params: ASGIAdaptor) -> Any
"""
fmt = parse_format(params, RawDataList, 'json')
results = RawDataList()
async with api.begin() as conn:
sql = sa.text(""" SELECT p.place_id, country_code,
name->'name' as name, i.*
FROM placex p, import_polygon_delete i
WHERE p.osm_id = i.osm_id AND p.osm_type = i.osm_type
AND p.class = i.class AND p.type = i.type
""")
results = RawDataList(r._asdict() for r in await conn.execute(sql))
for osm_type in ('N', 'W', 'R'):
sql = sa.text(""" SELECT p.place_id, country_code,
name->'name' as name, i.*
FROM placex p, import_polygon_delete i
WHERE i.osm_type = :osm_type
AND p.osm_id = i.osm_id AND p.osm_type = :osm_type
AND p.class = i.class AND p.type = i.type
""")
results.extend(r._asdict() for r in await conn.execute(sql, {'osm_type': osm_type}))
return build_response(params, params.formatting().format_result(results, fmt, {}))