From 7fb6c2ecfe001fa2e60b5239c26ab27d1dc32046 Mon Sep 17 00:00:00 2001 From: Michael McCandless Date: Thu, 21 Jul 2011 16:17:00 +0000 Subject: [PATCH] small optimization: don't add docBase unless score may be competitive git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1149256 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/lucene/search/TopScoreDocCollector.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lucene/src/java/org/apache/lucene/search/TopScoreDocCollector.java b/lucene/src/java/org/apache/lucene/search/TopScoreDocCollector.java index d8f317592c1..c542e18c31c 100644 --- a/lucene/src/java/org/apache/lucene/search/TopScoreDocCollector.java +++ b/lucene/src/java/org/apache/lucene/search/TopScoreDocCollector.java @@ -82,8 +82,13 @@ public abstract class TopScoreDocCollector extends TopDocsCollector { assert !Float.isNaN(score); totalHits++; + if (score < pqTop.score) { + // Doesn't compete w/ bottom entry in queue + return; + } doc += docBase; - if (score < pqTop.score || (score == pqTop.score && doc > pqTop.doc)) { + if (score == pqTop.score && doc > pqTop.doc) { + // Break tie in score by doc ID: return; } pqTop.doc = doc;