forked from hans/Nominatim
pre-create word list to avoid duplicates due to parallel indexing
This commit is contained in:
@@ -389,7 +389,7 @@ BEGIN
|
|||||||
result := '{}'::INTEGER[];
|
result := '{}'::INTEGER[];
|
||||||
|
|
||||||
s := make_standard_name(src);
|
s := make_standard_name(src);
|
||||||
w := getorcreate_name_id(s);
|
w := getorcreate_name_id(s, src);
|
||||||
|
|
||||||
IF NOT (ARRAY[w] <@ result) THEN
|
IF NOT (ARRAY[w] <@ result) THEN
|
||||||
result := result || w;
|
result := result || w;
|
||||||
@@ -407,6 +407,30 @@ BEGIN
|
|||||||
END LOOP;
|
END LOOP;
|
||||||
END IF;
|
END IF;
|
||||||
|
|
||||||
|
words := regexp_split_to_array(src, E'[,;()]');
|
||||||
|
IF array_upper(words, 1) != 1 THEN
|
||||||
|
FOR j IN 1..array_upper(words, 1) LOOP
|
||||||
|
s := make_standard_name(words[j]);
|
||||||
|
IF s != '' THEN
|
||||||
|
w := getorcreate_word_id(s);
|
||||||
|
IF NOT (ARRAY[w] <@ result) THEN
|
||||||
|
result := result || w;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
END LOOP;
|
||||||
|
END IF;
|
||||||
|
|
||||||
|
s := regexp_replace(src, '市$', '');
|
||||||
|
IF s != src THEN
|
||||||
|
s := make_standard_name(s);
|
||||||
|
IF s != '' THEN
|
||||||
|
w := getorcreate_name_id(s, src);
|
||||||
|
IF NOT (ARRAY[w] <@ result) THEN
|
||||||
|
result := result || w;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
END IF;
|
||||||
|
|
||||||
RETURN result;
|
RETURN result;
|
||||||
END;
|
END;
|
||||||
$$
|
$$
|
||||||
|
|||||||
@@ -264,6 +264,14 @@
|
|||||||
if (!pg_query($oDB->connection, 'CREATE SEQUENCE seq_place start 100000')) fail(pg_last_error($oDB->connection));
|
if (!pg_query($oDB->connection, 'CREATE SEQUENCE seq_place start 100000')) fail(pg_last_error($oDB->connection));
|
||||||
echo '.';
|
echo '.';
|
||||||
|
|
||||||
|
// pre-create the word list
|
||||||
|
if (!pg_query($oDB->connection, 'select count(make_keywords(v)) from (select distinct svals(name) as v from place) as w where v is not null;')) fail(pg_last_error($oDB->connection));
|
||||||
|
echo '.';
|
||||||
|
if (!pg_query($oDB->connection, 'select count(make_keywords(v)) from (select distinct postcode as v from place) as w where v is not null;')) fail(pg_last_error($oDB->connection));
|
||||||
|
echo '.';
|
||||||
|
if (!pg_query($oDB->connection, 'select count(getorcreate_housenumber_id(v)) from (select distinct housenumber as v from place where housenumber is not null) as w;')) fail(pg_last_error($oDB->connection));
|
||||||
|
echo '.';
|
||||||
|
|
||||||
$aDBInstances = array();
|
$aDBInstances = array();
|
||||||
for($i = 0; $i < $iInstances; $i++)
|
for($i = 0; $i < $iInstances; $i++)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user