mirror of
https://github.com/osm-search/Nominatim.git
synced 2026-02-26 11:08:13 +00:00
use new transliteration in initial housenumber word computation
The new create_housenumber_id() function splits housenumber lists correctly. Otherwise there is no difference.
This commit is contained in:
@@ -47,7 +47,10 @@ END;
|
|||||||
$$
|
$$
|
||||||
LANGUAGE plpgsql;
|
LANGUAGE plpgsql;
|
||||||
|
|
||||||
|
-- Create housenumber tokens from an OSM addr:housenumber.
|
||||||
|
-- The housnumber is split at comma and semicolon as necessary.
|
||||||
|
-- The function returns the normalized form of the housenumber suitable
|
||||||
|
-- for comparison.
|
||||||
CREATE OR REPLACE FUNCTION create_housenumber_id(housenumber TEXT)
|
CREATE OR REPLACE FUNCTION create_housenumber_id(housenumber TEXT)
|
||||||
RETURNS TEXT
|
RETURNS TEXT
|
||||||
AS $$
|
AS $$
|
||||||
@@ -56,7 +59,7 @@ DECLARE
|
|||||||
BEGIN
|
BEGIN
|
||||||
SELECT array_to_string(array_agg(trans), ';')
|
SELECT array_to_string(array_agg(trans), ';')
|
||||||
INTO normtext
|
INTO normtext
|
||||||
FROM (SELECT transliteration(lookup_word) as trans, getorcreate_housenumber_id(lookup_word)
|
FROM (SELECT lookup_word as trans, getorcreate_housenumber_id(lookup_word)
|
||||||
FROM (SELECT make_standard_name(h) as lookup_word
|
FROM (SELECT make_standard_name(h) as lookup_word
|
||||||
FROM regexp_split_to_table(housenumber, '[,;]') h) x) y;
|
FROM regexp_split_to_table(housenumber, '[,;]') h) x) y;
|
||||||
|
|
||||||
|
|||||||
@@ -667,7 +667,7 @@ BEGIN
|
|||||||
IF NEW.address is not NULL THEN
|
IF NEW.address is not NULL THEN
|
||||||
IF NEW.address ? 'conscriptionnumber' THEN
|
IF NEW.address ? 'conscriptionnumber' THEN
|
||||||
IF NEW.address ? 'streetnumber' THEN
|
IF NEW.address ? 'streetnumber' THEN
|
||||||
NEW.housenumber := (NEW.address->'conscriptionnumber') || ';' || (NEW.address->'streetnumber');
|
NEW.housenumber := (NEW.address->'conscriptionnumber') || '/' || (NEW.address->'streetnumber');
|
||||||
ELSE
|
ELSE
|
||||||
NEW.housenumber := NEW.address->'conscriptionnumber';
|
NEW.housenumber := NEW.address->'conscriptionnumber';
|
||||||
END IF;
|
END IF;
|
||||||
|
|||||||
@@ -5,7 +5,7 @@ CREATE TABLE word_frequencies AS
|
|||||||
GROUP BY id);
|
GROUP BY id);
|
||||||
|
|
||||||
select count(getorcreate_postcode_id(v)) from (select distinct address->'postcode' as v from place where address ? 'postcode') as w where v is not null;
|
select count(getorcreate_postcode_id(v)) from (select distinct address->'postcode' as v from place where address ? 'postcode') as w where v is not null;
|
||||||
select count(getorcreate_housenumber_id(make_standard_name(v))) from (select distinct address->'housenumber' as v from place where address ? 'housenumber') as w;
|
select count(create_housenumber_id(v)) from (select distinct address->'housenumber' as v from place where address ? 'housenumber') as w;
|
||||||
|
|
||||||
-- copy the word frequencies
|
-- copy the word frequencies
|
||||||
update word set search_name_count = count from word_frequencies wf where wf.id = word.word_id;
|
update word set search_name_count = count from word_frequencies wf where wf.id = word.word_id;
|
||||||
|
|||||||
Reference in New Issue
Block a user