]> git.openstreetmap.org Git - nominatim.git/commitdiff
use new transliteration in initial housenumber word computation
authorSarah Hoffmann <lonvia@denofr.de>
Thu, 1 Apr 2021 16:52:06 +0000 (18:52 +0200)
committerSarah Hoffmann <lonvia@denofr.de>
Sun, 4 Apr 2021 13:26:47 +0000 (15:26 +0200)
The new create_housenumber_id() function splits housenumber
lists correctly. Otherwise there is no difference.

lib-sql/functions/normalization.sql
lib-sql/functions/placex_triggers.sql
lib-sql/words.sql

index aca793c57b91cca476137d943b44f086290fa9ed..f283f9165d9e324590ecbdaaa5fc9fc872651e16 100644 (file)
@@ -47,7 +47,10 @@ END;
 $$
 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)
   RETURNS TEXT
   AS $$
@@ -56,7 +59,7 @@ DECLARE
 BEGIN
   SELECT array_to_string(array_agg(trans), ';')
     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 regexp_split_to_table(housenumber, '[,;]') h) x) y;
 
index b47758df3b3bfd3f1c066e75b59859961ea3cae8..6998224e7b851893e590d9f63ca47ca6acd1b18e 100644 (file)
@@ -667,7 +667,7 @@ BEGIN
   IF NEW.address is not NULL THEN
       IF NEW.address ? 'conscriptionnumber' THEN
         IF NEW.address ? 'streetnumber' THEN
-            NEW.housenumber := (NEW.address->'conscriptionnumber') || ';' || (NEW.address->'streetnumber');
+            NEW.housenumber := (NEW.address->'conscriptionnumber') || '/' || (NEW.address->'streetnumber');
         ELSE
             NEW.housenumber := NEW.address->'conscriptionnumber';
         END IF;
index ac379221c69def092639b340fbe5659b2332443e..8be178142f0d272b9d8bf6bc081b9f8341b10f7f 100644 (file)
@@ -5,7 +5,7 @@ CREATE TABLE word_frequencies AS
  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_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
 update word set search_name_count = count from word_frequencies wf where wf.id = word.word_id;