X-Git-Url: https://git.openstreetmap.org./nominatim.git/blobdiff_plain/3816b86a9e084483b3ad73661cbed063123fd8f0..d442bf904b68d26dd7daf62746919475ce5a151a:/nominatim/nominatim.py diff --git a/nominatim/nominatim.py b/nominatim/nominatim.py index 9e720609..b20673d2 100755 --- a/nominatim/nominatim.py +++ b/nominatim/nominatim.py @@ -47,12 +47,12 @@ class RankRunner(object): def sql_count_objects(self): return """SELECT count(*) FROM placex - WHERE rank_search = {} and indexed_status > 0 + WHERE rank_address = {} and indexed_status > 0 """.format(self.rank) def sql_get_objects(self): return """SELECT place_id FROM placex - WHERE indexed_status > 0 and rank_search = {} + WHERE indexed_status > 0 and rank_address = {} ORDER BY geometry_sector""".format(self.rank) def sql_index_place(self, ids): @@ -114,7 +114,7 @@ class Indexer(object): """ def __init__(self, options): - self.minrank = max(0, options.minrank) + self.minrank = max(1, options.minrank) self.maxrank = min(30, options.maxrank) self.conn = make_connection(options) self.threads = [DBConnection(options) for i in range(options.threads)] @@ -132,20 +132,22 @@ class Indexer(object): log.warning("Starting indexing rank ({} to {}) using {} threads".format( self.minrank, self.maxrank, len(self.threads))) - for rank in range(self.minrank, self.maxrank): + for rank in range(max(1, self.minrank), self.maxrank): self.index(RankRunner(rank)) if self.maxrank == 30: + self.index(RankRunner(0)) self.index(InterpolationRunner(), 20) - - self.index(RankRunner(self.maxrank), 20) + self.index(RankRunner(self.maxrank), 20) + else: + self.index(RankRunner(self.maxrank)) def index(self, obj, batch=1): """ Index a single rank or table. `obj` describes the SQL to use for indexing. `batch` describes the number of objects that should be processed with a single SQL statement """ - log.warning("Starting {}".format(obj.name())) + log.warning("Starting %s (using batch size %s)", obj.name(), batch) cur = self.conn.cursor() cur.execute(obj.sql_count_objects())