From 8bcdba1a14035fa9c4d79fc3557f98dee79df1ba Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 29 Apr 2022 12:11:39 +0200 Subject: [PATCH 1/2] add check for wikipedia importance data Adds a new check level WARNING because missing wikipedia importances are not necessarily an error. If the database is run for reverse requests only, then it is fine to go without them. --- nominatim/tools/check_database.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/nominatim/tools/check_database.py b/nominatim/tools/check_database.py index 3640197b..14a8f0cb 100644 --- a/nominatim/tools/check_database.py +++ b/nominatim/tools/check_database.py @@ -23,6 +23,7 @@ class CheckState(Enum): FAIL = 1 FATAL = 2 NOT_APPLICABLE = 3 + WARN = 4 def _check(hint=None): """ Decorator for checks. It adds the function to the list of @@ -40,6 +41,11 @@ def _check(hint=None): params = {} if ret == CheckState.OK: print('\033[92mOK\033[0m') + elif ret == CheckState.WARN: + print('\033[93mWARNING\033[0m') + if hint: + print('') + print(dedent(hint.format(**params))) elif ret == CheckState.NOT_APPLICABLE: print('not applicable') else: @@ -180,6 +186,20 @@ def check_tokenizer(_, config): return CheckState.FAIL, dict(msg=result) +@_check(hint="""\ + Wikipedia/Wikidata importance tables missing. + Quality of search results may be degraded. Reverse geocoding is unaffected. + See https://nominatim.org/release-docs/latest/admin/Import/#wikipediawikidata-rankings + """) +def check_existance_wikipedia(conn, _): + """ Checking for wikipedia/wikidata data + """ + with conn.cursor() as cur: + cnt = cur.scalar('SELECT count(*) FROM wikipedia_article') + + return CheckState.WARN if cnt == 0 else CheckState.OK + + @_check(hint="""\ The indexing didn't finish. {count} entries are not yet indexed. From 3d58254462289cad257cb96d60b7a24f8e7fc8da Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 29 Apr 2022 14:12:55 +0200 Subject: [PATCH 2/2] skip wikipedia table test on reverse-only installations Wikipedia importances are not imported on reverse-only imports. --- nominatim/tools/check_database.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/nominatim/tools/check_database.py b/nominatim/tools/check_database.py index 14a8f0cb..7ac31271 100644 --- a/nominatim/tools/check_database.py +++ b/nominatim/tools/check_database.py @@ -194,6 +194,9 @@ def check_tokenizer(_, config): def check_existance_wikipedia(conn, _): """ Checking for wikipedia/wikidata data """ + if not conn.table_exists('search_name'): + return CheckState.NOT_APPLICABLE + with conn.cursor() as cur: cnt = cur.scalar('SELECT count(*) FROM wikipedia_article')