You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by jp...@apache.org on 2015/09/01 11:39:23 UTC
svn commit: r1700449 - in /lucene/dev/branches/branch_5x: ./ lucene/
lucene/CHANGES.txt lucene/core/
lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java
Author: jpountz
Date: Tue Sep 1 09:39:22 2015
New Revision: 1700449
URL: http://svn.apache.org/r1700449
Log:
LUCENE-6756: MatchAllDocsQuery now has a dedicated BulkScorer.
Modified:
lucene/dev/branches/branch_5x/ (props changed)
lucene/dev/branches/branch_5x/lucene/ (props changed)
lucene/dev/branches/branch_5x/lucene/CHANGES.txt (contents, props changed)
lucene/dev/branches/branch_5x/lucene/core/ (props changed)
lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java
Modified: lucene/dev/branches/branch_5x/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/CHANGES.txt?rev=1700449&r1=1700448&r2=1700449&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/CHANGES.txt (original)
+++ lucene/dev/branches/branch_5x/lucene/CHANGES.txt Tue Sep 1 09:39:22 2015
@@ -7,6 +7,7 @@ http://s.apache.org/luceneversions
======================= Lucene 5.4.0 =======================
New Features
+
* LUCENE-6747: FingerprintFilter is a TokenFilter that outputs a single
token which is a concatenation of the sorted and de-duplicated set of
input tokens. Useful for normalizing short text in clustering/linking
@@ -29,6 +30,9 @@ Optimizations
* LUCENE-6720: ValueSourceScorer, returned from
FunctionValues.getRangeScorer(), now uses TwoPhaseIterator. (David Smiley)
+* LUCENE-6756: MatchAllDocsQuery now has a dedicated BulkScorer for better
+ performance when used as a top-level query. (Adrien Grand)
+
Bug Fixes
* LUCENE-6730: Hyper-parameter c is ignored in term frequency NormalizationH1.
Modified: lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java?rev=1700449&r1=1700448&r2=1700449&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/java/org/apache/lucene/search/MatchAllDocsQuery.java Tue Sep 1 09:39:22 2015
@@ -40,6 +40,31 @@ public final class MatchAllDocsQuery ext
public String toString() {
return "weight(" + MatchAllDocsQuery.this + ")";
}
+ @Override
+ public BulkScorer bulkScorer(LeafReaderContext context) throws IOException {
+ final float score = score();
+ final int maxDoc = context.reader().maxDoc();
+ return new BulkScorer() {
+ @Override
+ public int score(LeafCollector collector, Bits acceptDocs, int min, int max) throws IOException {
+ max = Math.min(max, maxDoc);
+ FakeScorer scorer = new FakeScorer();
+ scorer.score = score;
+ collector.setScorer(scorer);
+ for (int doc = min; doc < max; ++doc) {
+ scorer.doc = doc;
+ if (acceptDocs == null || acceptDocs.get(doc)) {
+ collector.collect(doc);
+ }
+ }
+ return max == maxDoc ? DocIdSetIterator.NO_MORE_DOCS : max;
+ }
+ @Override
+ public long cost() {
+ return maxDoc;
+ }
+ };
+ }
};
}