You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2011/10/06 18:01:03 UTC
svn commit: r1179677 - in /lucene/dev/trunk/lucene: CHANGES.txt
src/java/org/apache/lucene/search/FilteredQuery.java
Author: rmuir
Date: Thu Oct 6 16:01:03 2011
New Revision: 1179677
URL: http://svn.apache.org/viewvc?rev=1179677&view=rev
Log:
LUCENE-3494: Optimize FilteredQuery to remove a multiply in score()
Modified:
lucene/dev/trunk/lucene/CHANGES.txt
lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FilteredQuery.java
Modified: lucene/dev/trunk/lucene/CHANGES.txt
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/CHANGES.txt?rev=1179677&r1=1179676&r2=1179677&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/CHANGES.txt (original)
+++ lucene/dev/trunk/lucene/CHANGES.txt Thu Oct 6 16:01:03 2011
@@ -656,6 +656,9 @@ Optimizations
* LUCENE-3426: Add NGramPhraseQuery which extends PhraseQuery and tries to
reduce the number of terms of the query when rewrite(), in order to improve
performance. (Robert Muir, Koji Sekiguchi)
+
+* LUCENE-3494: Optimize FilteredQuery to remove a multiply in score()
+ (Uwe Schindler, Robert Muir)
Test Cases
Modified: lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FilteredQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FilteredQuery.java?rev=1179677&r1=1179676&r2=1179677&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FilteredQuery.java (original)
+++ lucene/dev/trunk/lucene/src/java/org/apache/lucene/search/FilteredQuery.java Thu Oct 6 16:01:03 2011
@@ -67,23 +67,17 @@ extends Query {
@Override
public float getValueForNormalization() throws IOException {
- return weight.getValueForNormalization() * getBoost() * getBoost();
+ return weight.getValueForNormalization() * getBoost() * getBoost(); // boost sub-weight
}
@Override
public void normalize (float norm, float topLevelBoost) {
- weight.normalize(norm, topLevelBoost);
+ weight.normalize(norm, topLevelBoost * getBoost()); // incorporate boost
}
@Override
public Explanation explain (AtomicReaderContext ir, int i) throws IOException {
Explanation inner = weight.explain (ir, i);
- if (getBoost()!=1) {
- Explanation preBoost = inner;
- inner = new Explanation(inner.getValue()*getBoost(),"product of:");
- inner.addDetail(new Explanation(getBoost(),"boost"));
- inner.addDetail(preBoost);
- }
Filter f = FilteredQuery.this.filter;
DocIdSet docIdSet = f.getDocIdSet(ir);
DocIdSetIterator docIdSetIterator = docIdSet == null ? DocIdSet.EMPTY_DOCIDSET.iterator() : docIdSet.iterator();
@@ -158,7 +152,7 @@ extends Query {
}
@Override
- public float score() throws IOException { return getBoost() * scorer.score(); }
+ public float score() throws IOException { return scorer.score(); }
};
}
};