index postcodes after refreshing

This commit is contained in:
Sarah Hoffmann
2021-05-13 00:14:52 +02:00
parent 4abaf71234
commit bf864b2c54
3 changed files with 9 additions and 1 deletions

View File

@@ -47,6 +47,7 @@ class UpdateRefresh:
def run(args): def run(args):
from ..tools import refresh, postcodes from ..tools import refresh, postcodes
from ..tokenizer import factory as tokenizer_factory from ..tokenizer import factory as tokenizer_factory
from ..indexer.indexer import Indexer
tokenizer = tokenizer_factory.get_tokenizer_for_db(args.config) tokenizer = tokenizer_factory.get_tokenizer_for_db(args.config)
@@ -54,6 +55,9 @@ class UpdateRefresh:
LOG.warning("Update postcodes centroid") LOG.warning("Update postcodes centroid")
postcodes.update_postcodes(args.config.get_libpq_dsn(), postcodes.update_postcodes(args.config.get_libpq_dsn(),
args.project_dir, tokenizer) args.project_dir, tokenizer)
indexer = Indexer(args.config.get_libpq_dsn(), tokenizer,
args.threads or 1)
indexer.index_postcodes()
if args.word_counts: if args.word_counts:
LOG.warning('Recompute frequency of full-word search terms') LOG.warning('Recompute frequency of full-word search terms')

View File

@@ -35,6 +35,9 @@ class _CountryPostcodesCollector:
self._update_from_external(analyzer, project_dir) self._update_from_external(analyzer, project_dir)
to_add, to_delete, to_update = self._compute_changes(conn) to_add, to_delete, to_update = self._compute_changes(conn)
LOG.info("Processing country '%s' (%s added, %s deleted, %s updated).",
self.country, len(to_add), len(to_delete), len(to_update))
with conn.cursor() as cur: with conn.cursor() as cur:
if to_add: if to_add:
execute_values(cur, execute_values(cur,
@@ -165,4 +168,4 @@ def update_postcodes(dsn, project_dir, tokenizer):
conn.commit() conn.commit()
analyzer.add_postcodes_from_db() analyzer.update_postcodes_from_db()

View File

@@ -278,6 +278,7 @@ def test_refresh_command(mock_func_factory, temp_db, command, func, tokenizer_mo
def test_refresh_postcodes(mock_func_factory, temp_db, tokenizer_mock): def test_refresh_postcodes(mock_func_factory, temp_db, tokenizer_mock):
func_mock = mock_func_factory(nominatim.tools.postcodes, 'update_postcodes') func_mock = mock_func_factory(nominatim.tools.postcodes, 'update_postcodes')
idx_mock = mock_func_factory(nominatim.indexer.indexer.Indexer, 'index_postcodes')
assert 0 == call_nominatim('refresh', '--postcodes') assert 0 == call_nominatim('refresh', '--postcodes')
assert func_mock.called == 1 assert func_mock.called == 1