From 8bcdba1a14035fa9c4d79fc3557f98dee79df1ba Mon Sep 17 00:00:00 2001 From: Sarah Hoffmann Date: Fri, 29 Apr 2022 12:11:39 +0200 Subject: [PATCH] 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.