From df6a05b9a756f5fa0fa50d390a9334832769d9b2 Mon Sep 17 00:00:00 2001 From: Viktor Lofgren Date: Tue, 6 Aug 2024 10:52:52 +0200 Subject: [PATCH] (index) Avoid hypothetical divide-by-zero in tcfAvgDist --- .../marginalia/index/results/IndexResultScoreCalculator.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/index/java/nu/marginalia/index/results/IndexResultScoreCalculator.java b/code/index/java/nu/marginalia/index/results/IndexResultScoreCalculator.java index f85436af..1d52e2c4 100644 --- a/code/index/java/nu/marginalia/index/results/IndexResultScoreCalculator.java +++ b/code/index/java/nu/marginalia/index/results/IndexResultScoreCalculator.java @@ -345,7 +345,7 @@ public class IndexResultScoreCalculator { + keywordMinDistFac; double tcfAvgDist = rankingParams.tcfAvgDist * (1.0 / calculateAvgMinDistance(positionsQuery, ctx)); - double tcfFirstPosition = rankingParams.tcfFirstPosition * (1.0 / Math.sqrt(Math.max(1, firstPosition))); + double tcfFirstPosition = rankingParams.tcfFirstPosition * (1.0 / Math.sqrt(firstPosition)); double bM25 = rankingParams.bm25Weight * wordFlagsQuery.root.visit(new Bm25GraphVisitor(rankingParams.bm25Params, weightedCounts, length, ctx)); double bFlags = rankingParams.bm25Weight * wordFlagsQuery.root.visit(new TermFlagsGraphVisitor(rankingParams.bm25Params, wordFlagsQuery.data, weightedCounts, ctx)); @@ -474,7 +474,7 @@ public class IndexResultScoreCalculator { } } - if (cnt > 0) { + if (cnt > 0 && sum > 0) { return sum / cnt; } else { return 1000.;