ensure that bailout-check is done after each iteration

This commit is contained in:
Sarah Hoffmann
2025-04-11 11:01:13 +02:00
parent e0e067b1d6
commit b680d81f0a

View File

@@ -316,13 +316,13 @@ class SearchBuilder:
rank.with_token(t, chgpenalty))) rank.with_token(t, chgpenalty)))
elif tlist.end == trange.end: elif tlist.end == trange.end:
ranks.extend(rank.with_token(t, 0.0) for t in tlist.tokens) ranks.extend(rank.with_token(t, 0.0) for t in tlist.tokens)
if len(ranks) >= 10: if len(ranks) >= 10:
# Too many variants, bail out and only add # Too many variants, bail out and only add
# Worst-case Fallback: sum of penalty of partials # Worst-case Fallback: sum of penalty of partials
default = sum(t.penalty for t in self.query.iter_partials(trange)) + 0.2 default = sum(t.penalty for t in self.query.iter_partials(trange)) + 0.2
ranks.append(dbf.RankedTokens(rank.penalty + default, [])) ranks.append(dbf.RankedTokens(rank.penalty + default, []))
# Bail out of outer loop # Bail out of outer loop
todo.clear()
break break
ranks.sort(key=lambda r: len(r.tokens)) ranks.sort(key=lambda r: len(r.tokens))