You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by ro...@apache.org on 2014/12/14 22:27:50 UTC
svn commit: r1645525 - in /lucene/dev/branches/lucene2878/lucene/core/src:
java/org/apache/lucene/search/ java/org/apache/lucene/search/posfilter/
test/org/apache/lucene/search/
Author: romseygeek
Date: Sun Dec 14 21:27:50 2014
New Revision: 1645525
URL: http://svn.apache.org/r1645525
Log:
LUCENE-2878: Scoring on positionfilterqueries
Removed:
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseScorer.java
Modified:
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/ExactPhraseScorer.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/SloppyPhraseScorer.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/BlockPhraseScorer.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/NonOverlappingQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/OrderedNearQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilterQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilteredScorer.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/RangeFilterQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/UnorderedNearQuery.java
lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/WithinFilteredScorer.java
lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/ExactPhraseScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/ExactPhraseScorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/ExactPhraseScorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/ExactPhraseScorer.java Sun Dec 14 21:27:50 2014
@@ -23,8 +23,9 @@ import java.util.Arrays;
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.search.PhraseQuery.TermDocsEnumFactory;
import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.util.BytesRef;
-final class ExactPhraseScorer extends PhraseScorer {
+final class ExactPhraseScorer extends Scorer {
private final int endMinus1;
private final static int CHUNK = 4096;
@@ -129,7 +130,18 @@ final class ExactPhraseScorer extends Ph
@Override
public float score() throws IOException {
- return docScorer.score(docID, freq());
+ return docScorer.score(docID, phraseFreq());
+ }
+
+ private int freq = -1;
+
+ protected int phraseFreq() throws IOException {
+ if (freq != -1)
+ return freq;
+ freq = 0;
+ while (nextPosition() != NO_MORE_POSITIONS)
+ freq++;
+ return freq;
}
private int chunkStart = 0;
@@ -140,11 +152,11 @@ final class ExactPhraseScorer extends Ph
private boolean cached = false;
private void resetPositions() throws IOException {
- freq = -1;
chunkStart = 0;
chunkEnd = CHUNK;
posRemaining = 0;
cached = false;
+ freq = -1;
for (final ChunkState cs : chunkStates) {
cs.posLimit = cs.posEnum.freq();
cs.pos = cs.offset + cs.posEnum.nextPosition();
@@ -155,33 +167,43 @@ final class ExactPhraseScorer extends Ph
private int firstPosition() throws IOException {
resetPositions();
- int pos = doNextPosition();
+ int pos = nextPosition();
cached = true;
return pos;
}
@Override
- protected int doStartPosition() throws IOException {
+ public int startPosition() throws IOException {
return posQueue[positionsInChunk - posRemaining - 1];
}
@Override
- protected int doStartOffset() throws IOException {
+ public int startOffset() throws IOException {
return offsetQueue[(positionsInChunk - posRemaining - 1) / 2];
}
@Override
- protected int doEndOffset() throws IOException {
+ public int endOffset() throws IOException {
return offsetQueue[(positionsInChunk - posRemaining - 1) / 2 + 1];
}
@Override
- protected int doEndPosition() throws IOException {
+ public BytesRef getPayload() throws IOException {
+ return null; // TODO payloads over intervals
+ }
+
+ @Override
+ public int endPosition() throws IOException {
return startPosition() + chunkStates.length - 1;
}
@Override
- protected int doNextPosition() throws IOException {
+ public int freq() throws IOException {
+ return phraseFreq();
+ }
+
+ @Override
+ public int nextPosition() throws IOException {
if (cached) {
cached = false;
return startPosition();
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/PhraseQuery.java Sun Dec 14 21:27:50 2014
@@ -17,6 +17,11 @@ package org.apache.lucene.search;
* limitations under the License.
*/
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Set;
+
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.IndexReaderContext;
@@ -34,11 +39,6 @@ import org.apache.lucene.util.Bits;
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.ToStringUtils;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Set;
-
/** A Query that matches documents containing a particular sequence of terms.
* A PhraseQuery is built by QueryParser for input like <code>"new york"</code>.
*
@@ -305,7 +305,7 @@ public class PhraseQuery extends Query {
if (scorer != null) {
int newDoc = scorer.advance(doc);
if (newDoc == doc) {
- float freq = slop == 0 ? scorer.freq() : ((SloppyPhraseScorer)scorer).sloppyFreq();
+ float freq = slop == 0 ? ((ExactPhraseScorer)scorer).phraseFreq() : ((SloppyPhraseScorer)scorer).sloppyFreq();
SimScorer docScorer = similarity.simScorer(stats, context);
ComplexExplanation result = new ComplexExplanation();
result.setDescription("weight("+getQuery()+" in "+doc+") [" + similarity.getClass().getSimpleName() + "], result of:");
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/Scorer.java Sun Dec 14 21:27:50 2014
@@ -17,12 +17,12 @@ package org.apache.lucene.search;
* limitations under the License.
*/
-import org.apache.lucene.index.DocsEnum;
-
import java.io.IOException;
import java.util.Collection;
import java.util.Collections;
+import org.apache.lucene.index.DocsEnum;
+
/**
* Expert: Common scoring functionality for different types of queries.
*
@@ -60,6 +60,13 @@ public abstract class Scorer extends Doc
* {@link LeafCollector#collect}.
*/
public abstract float score() throws IOException;
+
+ /** Returns the score of the current interval spanned by this scorer.
+ * Initially invalid, until {@link #nextPosition()} is called
+ */
+ public float intervalScore() throws IOException {
+ return 1;
+ }
/** returns parent Weight
* @lucene.experimental
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/SloppyPhraseScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/SloppyPhraseScorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/SloppyPhraseScorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/SloppyPhraseScorer.java Sun Dec 14 21:27:50 2014
@@ -27,10 +27,11 @@ import java.util.LinkedHashMap;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.similarities.Similarity;
+import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.FixedBitSet;
-final class SloppyPhraseScorer extends PhraseScorer {
+final class SloppyPhraseScorer extends Scorer {
private PhrasePositions min, max;
private float sloppyFreq;
@@ -92,10 +93,14 @@ final class SloppyPhraseScorer extends P
private int matchLength;
private int startpos = -1;
private int startoffset = -1;
- private int endoffset = -1;
@Override
- protected int doNextPosition() throws IOException {
+ public int freq() throws IOException {
+ throw new UnsupportedOperationException();
+ }
+
+ @Override
+ public int nextPosition() throws IOException {
if (cached) {
cached = false;
return this.startPosition();
@@ -169,10 +174,9 @@ final class SloppyPhraseScorer extends P
if (!initPhrasePositions())
return NO_MORE_POSITIONS;
- freq = -1;
sloppyFreq = -1;
cached = false;
- int pos = doNextPosition();
+ int pos = nextPosition();
cached = true;
return pos;
}
@@ -604,23 +608,27 @@ final class SloppyPhraseScorer extends P
}
@Override
- protected int doStartOffset() throws IOException {
+ public int startOffset() throws IOException {
return startoffset;
}
@Override
- protected int doEndOffset() throws IOException {
+ public int endOffset() throws IOException {
return spanOffsetEnd;
}
- // TODO : getPayload on spans?
@Override
- protected int doStartPosition() throws IOException {
+ public BytesRef getPayload() throws IOException {
+ return null; // TODO : getPayload on intervals?
+ }
+
+ @Override
+ public int startPosition() throws IOException {
return startpos;
}
@Override
- protected int doEndPosition() throws IOException {
+ public int endPosition() throws IOException {
return spanEnd;
}
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/BlockPhraseScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/BlockPhraseScorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/BlockPhraseScorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/BlockPhraseScorer.java Sun Dec 14 21:27:50 2014
@@ -1,10 +1,10 @@
package org.apache.lucene.search.posfilter;
+import java.io.IOException;
+
import org.apache.lucene.search.Scorer;
import org.apache.lucene.search.similarities.Similarity;
-import java.io.IOException;
-
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/NonOverlappingQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/NonOverlappingQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/NonOverlappingQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/NonOverlappingQuery.java Sun Dec 14 21:27:50 2014
@@ -158,6 +158,11 @@ public final class NonOverlappingQuery e
}
@Override
+ public float intervalScore() throws IOException {
+ return child.intervalScore();
+ }
+
+ @Override
protected int doNextPosition() throws IOException {
if (subtPosition == NO_MORE_POSITIONS) {
int pos = child.nextPosition();
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/OrderedNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/OrderedNearQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/OrderedNearQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/OrderedNearQuery.java Sun Dec 14 21:27:50 2014
@@ -85,7 +85,7 @@ public class OrderedNearQuery extends Po
@Override
public int freq() throws IOException {
- return 1; // nocommit
+ throw new UnsupportedOperationException();
}
@Override
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilterQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilterQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilterQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilterQuery.java Sun Dec 14 21:27:50 2014
@@ -17,6 +17,10 @@ package org.apache.lucene.search.posfilt
* limitations under the License.
*/
+import java.io.IOException;
+import java.util.Set;
+import java.util.TreeSet;
+
import org.apache.lucene.index.DocsEnum;
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
@@ -34,10 +38,6 @@ import org.apache.lucene.search.Weight;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
-import java.io.IOException;
-import java.util.Set;
-import java.util.TreeSet;
-
public class PositionFilterQuery extends Query {
protected final Query innerQuery;
@@ -115,7 +115,7 @@ public class PositionFilterQuery extends
if (scorer != null) {
int newDoc = scorer.advance(doc);
if (newDoc == doc) {
- float freq = scorer.freq();
+ float freq = ((PositionFilteredScorer)scorer).intervalFreq();
Similarity.SimScorer docScorer = similarity.simScorer(stats, context);
ComplexExplanation result = new ComplexExplanation();
result.setDescription("weight("+getQuery()+" in "+doc+") [" + similarity.getClass().getSimpleName() + "], result of:");
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilteredScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilteredScorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilteredScorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/PositionFilteredScorer.java Sun Dec 14 21:27:50 2014
@@ -46,7 +46,18 @@ public abstract class PositionFilteredSc
@Override
public float score() throws IOException {
- return this.simScorer.score(docID(), freq());
+ return this.simScorer.score(docID(), intervalFreq());
+ }
+
+ private float freq = -1;
+
+ protected final float intervalFreq() throws IOException {
+ if (freq != -1)
+ return freq;
+ freq = 0;
+ while (nextPosition() != NO_MORE_POSITIONS)
+ freq += intervalScore();
+ return freq;
}
@Override
@@ -56,11 +67,7 @@ public abstract class PositionFilteredSc
@Override
public int freq() throws IOException {
- int freq = 0;
- while (nextPosition() != NO_MORE_POSITIONS) {
- freq++;
- }
- return freq;
+ throw new UnsupportedOperationException();
}
@Override
@@ -104,6 +111,7 @@ public abstract class PositionFilteredSc
protected void reset(int doc) throws IOException {
buffered = false;
+ freq = -1;
};
public int getMatchDistance() {
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/RangeFilterQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/RangeFilterQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/RangeFilterQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/RangeFilterQuery.java Sun Dec 14 21:27:50 2014
@@ -1,20 +1,15 @@
package org.apache.lucene.search.posfilter;
-import org.apache.lucene.search.Query;
-import org.apache.lucene.search.Scorer;
-import org.apache.lucene.search.similarities.Similarity;
-
-import java.io.IOException;
-
-/**
- * Copyright (c) 2012 Lemur Consulting Ltd.
- * <p/>
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,6 +17,12 @@ import java.io.IOException;
* limitations under the License.
*/
+import java.io.IOException;
+
+import org.apache.lucene.search.Query;
+import org.apache.lucene.search.Scorer;
+import org.apache.lucene.search.similarities.Similarity;
+
public class RangeFilterQuery extends PositionFilterQuery {
public RangeFilterQuery(int start, int end, Query innerQuery) {
@@ -65,6 +66,11 @@ public class RangeFilterQuery extends Po
}
@Override
+ public float intervalScore() throws IOException {
+ return child.intervalScore();
+ }
+
+ @Override
protected int doNextPosition() throws IOException {
int position;
while ((position = child.nextPosition()) != NO_MORE_POSITIONS) {
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/UnorderedNearQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/UnorderedNearQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/UnorderedNearQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/UnorderedNearQuery.java Sun Dec 14 21:27:50 2014
@@ -102,6 +102,10 @@ public class UnorderedNearQuery extends
posQueue.advanceTo(doc);
}
+ @Override
+ public float intervalScore() throws IOException {
+ return simScorer.computeSlopFactor(matchDistance);
+ }
private class SpanningPositionQueue extends PositionQueue {
@@ -176,18 +180,6 @@ public class UnorderedNearQuery extends
}
- @Override
- public float score() throws IOException {
- return this.simScorer.score(docID(), sloppyFreq());
- }
-
- private float sloppyFreq() throws IOException {
- float f = 0.0f;
- while (nextPosition() != NO_MORE_POSITIONS) {
- f += this.simScorer.computeSlopFactor(matchDistance);
- }
- return f;
- }
}
}
Modified: lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/WithinFilteredScorer.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/WithinFilteredScorer.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/WithinFilteredScorer.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/java/org/apache/lucene/search/posfilter/WithinFilteredScorer.java Sun Dec 14 21:27:50 2014
@@ -17,10 +17,10 @@ package org.apache.lucene.search.posfilt
* limitations under the License.
*/
-import org.apache.lucene.search.similarities.Similarity;
-
import java.io.IOException;
+import org.apache.lucene.search.similarities.Similarity;
+
public class WithinFilteredScorer extends PositionFilteredScorer {
private final int slop;
@@ -33,6 +33,11 @@ public class WithinFilteredScorer extend
}
@Override
+ public float intervalScore() throws IOException {
+ return wrappedScorer.intervalScore();
+ }
+
+ @Override
protected int doNextPosition() throws IOException {
int position;
while ((position = wrappedScorer.nextPosition()) != NO_MORE_POSITIONS) {
Modified: lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java?rev=1645525&r1=1645524&r2=1645525&view=diff
==============================================================================
--- lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java (original)
+++ lucene/dev/branches/lucene2878/lucene/core/src/test/org/apache/lucene/search/TestSloppyPhraseQuery.java Sun Dec 14 21:27:50 2014
@@ -146,7 +146,7 @@ public class TestSloppyPhraseQuery exten
IndexReader reader = writer.getReader();
IndexSearcher searcher = newSearcher(reader);
- MaxFreqCollector c = new MaxFreqCollector();
+ MaxScoreCollector c = new MaxScoreCollector();
searcher.search(query, c);
assertEquals("slop: "+slop+" query: "+query+" doc: "+doc+" Wrong number of hits", expectedNumResults, c.totalHits);
@@ -178,7 +178,7 @@ public class TestSloppyPhraseQuery exten
return query;
}
- static class MaxFreqCollector extends SimpleCollector {
+ static class MaxScoreCollector extends SimpleCollector {
float max;
int totalHits;
Scorer scorer;
@@ -191,7 +191,7 @@ public class TestSloppyPhraseQuery exten
@Override
public void collect(int doc) throws IOException {
totalHits++;
- max = Math.max(max, scorer.freq());
+ max = Math.max(max, scorer.score());
}
@Override
@@ -212,7 +212,6 @@ public class TestSloppyPhraseQuery exten
@Override
public void collect(int doc) throws IOException {
- assertFalse(Float.isInfinite(scorer.freq()));
assertFalse(Float.isInfinite(scorer.score()));
}