Skip to content

Commit de6ae36

Browse files
committed
Attempt full reindex upon incremental failure, fixes #554.
1 parent fe6df26 commit de6ae36

File tree

1 file changed

+8
-2
lines changed

1 file changed

+8
-2
lines changed

yente/search/indexer.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -137,16 +137,22 @@ async def index_entities(
137137
try:
138138
docs = iter_entity_docs(updater, next_index)
139139
await provider.bulk_index(docs)
140-
except YenteIndexError as exc:
140+
except (YenteIndexError, Exception) as exc:
141+
detail = getattr(exc, "detail", str(exc))
141142
log.exception(
142-
"Indexing error: %s" % exc.detail,
143+
"Indexing error: %s" % detail,
143144
dataset=dataset.name,
144145
index=next_index,
145146
)
146147
aliases = await provider.get_alias_indices(alias)
147148
if next_index not in aliases:
148149
log.warn("Deleting partial index", index=next_index)
149150
await provider.delete_index(next_index)
151+
if updater.is_incremental and not force:
152+
# This is tricky: try again with a full reindex if the incremental
153+
# indexing failed
154+
log.warn("Retrying with full reindex", dataset=dataset.name)
155+
return await index_entities(provider, dataset, force=True)
150156
raise exc
151157

152158
await provider.refresh(index=next_index)

0 commit comments

Comments
 (0)