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 2015/05/19 11:02:40 UTC
svn commit: r1680205 [2/2] - in /lucene/dev/trunk: lucene/
lucene/core/src/java/org/apache/lucene/search/payloads/
lucene/core/src/java/org/apache/lucene/search/spans/
lucene/core/src/test/org/apache/lucene/search/
lucene/core/src/test/org/apache/lucen...
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadSpans.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadSpans.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/payloads/TestPayloadSpans.java Tue May 19 09:02:38 2015
@@ -16,32 +16,23 @@ package org.apache.lucene.search.payload
* limitations under the License.
*/
-import java.io.IOException;
-import java.io.StringReader;
-import java.nio.charset.StandardCharsets;
-import java.util.Collection;
-import java.util.HashSet;
-import java.util.Set;
-
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.MockTokenizer;
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.Tokenizer;
+import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.analysis.tokenattributes.PayloadAttribute;
import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute;
-import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.document.TextField;
-import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.IndexReader;
+import org.apache.lucene.index.RandomIndexWriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.TermQuery;
import org.apache.lucene.search.TopDocs;
-import org.apache.lucene.search.payloads.PayloadHelper;
-import org.apache.lucene.search.payloads.PayloadSpanUtil;
import org.apache.lucene.search.similarities.DefaultSimilarity;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.search.spans.MultiSpansWrapper;
@@ -55,6 +46,13 @@ import org.apache.lucene.store.Directory
import org.apache.lucene.util.BytesRef;
import org.apache.lucene.util.LuceneTestCase;
+import java.io.IOException;
+import java.io.StringReader;
+import java.nio.charset.StandardCharsets;
+import java.util.Collection;
+import java.util.HashSet;
+import java.util.Set;
+
public class TestPayloadSpans extends LuceneTestCase {
private IndexSearcher searcher;
private Similarity similarity = new DefaultSimilarity();
@@ -74,14 +72,15 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq;
Spans spans;
stq = new SpanTermQuery(new Term(PayloadHelper.FIELD, "seventy"));
- spans = MultiSpansWrapper.wrap(indexReader, stq);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ spans = MultiSpansWrapper.wrap(indexReader, stq, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 100, 1, 1, 1);
+ checkSpans(spans, collector, 100, 1, 1, 1);
stq = new SpanTermQuery(new Term(PayloadHelper.NO_PAYLOAD_FIELD, "seventy"));
- spans = MultiSpansWrapper.wrap(indexReader, stq);
+ spans = MultiSpansWrapper.wrap(indexReader, stq, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 100, 0, 0, 0);
+ checkSpans(spans, collector, 100, 0, 0, 0);
}
public void testSpanFirst() throws IOException {
@@ -90,19 +89,20 @@ public class TestPayloadSpans extends Lu
SpanFirstQuery sfq;
match = new SpanTermQuery(new Term(PayloadHelper.FIELD, "one"));
sfq = new SpanFirstQuery(match, 2);
- Spans spans = MultiSpansWrapper.wrap(indexReader, sfq);
- checkSpans(spans, 109, 1, 1, 1);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ Spans spans = MultiSpansWrapper.wrap(indexReader, sfq, collector);
+ checkSpans(spans, collector, 109, 1, 1, 1);
//Test more complicated subclause
SpanQuery[] clauses = new SpanQuery[2];
clauses[0] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "one"));
clauses[1] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "hundred"));
match = new SpanNearQuery(clauses, 0, true);
sfq = new SpanFirstQuery(match, 2);
- checkSpans(MultiSpansWrapper.wrap(indexReader, sfq), 100, 2, 1, 1);
+ checkSpans(MultiSpansWrapper.wrap(indexReader, sfq, collector), collector, 100, 2, 1, 1);
match = new SpanNearQuery(clauses, 0, false);
sfq = new SpanFirstQuery(match, 2);
- checkSpans(MultiSpansWrapper.wrap(indexReader, sfq), 100, 2, 1, 1);
+ checkSpans(MultiSpansWrapper.wrap(indexReader, sfq, collector), collector, 100, 2, 1, 1);
}
@@ -124,9 +124,9 @@ public class TestPayloadSpans extends Lu
writer.addDocument(doc);
IndexReader reader = writer.getReader();
writer.close();
-
- checkSpans(MultiSpansWrapper.wrap(reader, snq), 1,new int[]{2});
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ checkSpans(MultiSpansWrapper.wrap(reader, snq, collector), collector, 1, new int[]{2});
reader.close();
directory.close();
}
@@ -135,8 +135,10 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq;
Spans spans;
IndexSearcher searcher = getSearcher();
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+
stq = new SpanTermQuery(new Term(PayloadHelper.FIELD, "mark"));
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), stq);
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), stq, collector);
assertNull(spans);
SpanQuery[] clauses = new SpanQuery[3];
@@ -145,9 +147,9 @@ public class TestPayloadSpans extends Lu
clauses[2] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "xx"));
SpanNearQuery spanNearQuery = new SpanNearQuery(clauses, 12, false);
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), spanNearQuery);
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), spanNearQuery, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 2, new int[]{3,3});
+ checkSpans(spans, collector, 2, new int[]{3,3});
clauses[0] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "xx"));
@@ -156,10 +158,10 @@ public class TestPayloadSpans extends Lu
spanNearQuery = new SpanNearQuery(clauses, 6, true);
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), spanNearQuery);
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), spanNearQuery, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 1, new int[]{3});
+ checkSpans(spans, collector, 1, new int[]{3});
clauses = new SpanQuery[2];
@@ -178,10 +180,9 @@ public class TestPayloadSpans extends Lu
SpanNearQuery nestedSpanNearQuery = new SpanNearQuery(clauses2, 6, false);
// yy within 6 of xx within 6 of rr
-
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery);
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 2, new int[]{3,3});
+ checkSpans(spans, collector, 2, new int[]{3,3});
closeIndexReader.close();
directory.close();
}
@@ -208,12 +209,13 @@ public class TestPayloadSpans extends Lu
clauses3[0] = new SpanTermQuery(new Term(PayloadHelper.FIELD, "np"));
clauses3[1] = snq;
-
+
+ PayloadSpanCollector collector = new PayloadSpanCollector();
SpanNearQuery nestedSpanNearQuery = new SpanNearQuery(clauses3, 6, false);
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery);
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 1, new int[]{3});
+ checkSpans(spans, collector, 1, new int[]{3});
closeIndexReader.close();
directory.close();
}
@@ -248,9 +250,10 @@ public class TestPayloadSpans extends Lu
SpanNearQuery nestedSpanNearQuery = new SpanNearQuery(clauses3, 6, false);
- spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ spans = MultiSpansWrapper.wrap(searcher.getIndexReader(), nestedSpanNearQuery, collector);
assertTrue("spans is null and it shouldn't be", spans != null);
- checkSpans(spans, 2, new int[]{8, 8});
+ checkSpans(spans, collector, 2, new int[]{8, 8});
closeIndexReader.close();
directory.close();
}
@@ -272,15 +275,17 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq2 = new SpanTermQuery(new Term("content", "k"));
SpanQuery[] sqs = { stq1, stq2 };
SpanNearQuery snq = new SpanNearQuery(sqs, 1, true);
- Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq, collector);
TopDocs topDocs = is.search(snq, 1);
Set<String> payloadSet = new HashSet<>();
for (int i = 0; i < topDocs.scoreDocs.length; i++) {
while (spans.nextDoc() != Spans.NO_MORE_DOCS) {
while (spans.nextStartPosition() != Spans.NO_MORE_POSITIONS) {
- Collection<byte[]> payloads = spans.getPayload();
-
+ collector.reset();
+ spans.collect(collector);
+ Collection<byte[]> payloads = collector.getPayloads();
for (final byte [] payload : payloads) {
payloadSet.add(new String(payload, StandardCharsets.UTF_8));
}
@@ -310,14 +315,17 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq2 = new SpanTermQuery(new Term("content", "k"));
SpanQuery[] sqs = { stq1, stq2 };
SpanNearQuery snq = new SpanNearQuery(sqs, 0, true);
- Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq, collector);
TopDocs topDocs = is.search(snq, 1);
Set<String> payloadSet = new HashSet<>();
for (int i = 0; i < topDocs.scoreDocs.length; i++) {
while (spans.nextDoc() != Spans.NO_MORE_DOCS) {
while (spans.nextStartPosition() != Spans.NO_MORE_POSITIONS) {
- Collection<byte[]> payloads = spans.getPayload();
+ collector.reset();
+ spans.collect(collector);
+ Collection<byte[]> payloads = collector.getPayloads();
for (final byte [] payload : payloads) {
payloadSet.add(new String(payload, StandardCharsets.UTF_8));
@@ -348,14 +356,17 @@ public class TestPayloadSpans extends Lu
SpanTermQuery stq2 = new SpanTermQuery(new Term("content", "k"));
SpanQuery[] sqs = { stq1, stq2 };
SpanNearQuery snq = new SpanNearQuery(sqs, 0, true);
- Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq);
+ PayloadSpanCollector collector = new PayloadSpanCollector();
+ Spans spans = MultiSpansWrapper.wrap(is.getIndexReader(), snq, collector);
TopDocs topDocs = is.search(snq, 1);
Set<String> payloadSet = new HashSet<>();
for (int i = 0; i < topDocs.scoreDocs.length; i++) {
while (spans.nextDoc() != Spans.NO_MORE_DOCS) {
while (spans.nextStartPosition() != Spans.NO_MORE_POSITIONS) {
- Collection<byte[]> payloads = spans.getPayload();
+ collector.reset();
+ spans.collect(collector);
+ Collection<byte[]> payloads = collector.getPayloads();
for (final byte [] payload : payloads) {
payloadSet.add(new String(payload, StandardCharsets.UTF_8));
@@ -401,7 +412,7 @@ public class TestPayloadSpans extends Lu
directory.close();
}
- private void checkSpans(Spans spans, int expectedNumSpans, int expectedNumPayloads,
+ private void checkSpans(Spans spans, PayloadSpanCollector collector, int expectedNumSpans, int expectedNumPayloads,
int expectedPayloadLength, int expectedFirstByte) throws IOException {
assertTrue("spans is null and it shouldn't be", spans != null);
//each position match should have a span associated with it, since there is just one underlying term query, there should
@@ -409,16 +420,16 @@ public class TestPayloadSpans extends Lu
int seen = 0;
while (spans.nextDoc() != Spans.NO_MORE_DOCS) {
while (spans.nextStartPosition() != Spans.NO_MORE_POSITIONS) {
- assertEquals("isPayloadAvailable should return true/false as payloads are expected", expectedNumPayloads > 0, spans.isPayloadAvailable());
- //See payload helper, for the PayloadHelper.FIELD field, there is a single byte payload at every token
- if (spans.isPayloadAvailable()) {
- Collection<byte[]> payload = spans.getPayload();
- assertEquals("payload size", expectedNumPayloads, payload.size());
- for (final byte [] thePayload : payload) {
- assertEquals("payload length", expectedPayloadLength, thePayload.length);
- assertEquals("payload first byte", expectedFirstByte, thePayload[0]);
- }
+ collector.reset();
+ spans.collect(collector);
+
+ Collection<byte[]> payload = collector.getPayloads();
+ assertEquals("payload size", expectedNumPayloads, payload.size());
+ for (final byte [] thePayload : payload) {
+ assertEquals("payload length", expectedPayloadLength, thePayload.length);
+ assertEquals("payload first byte", expectedFirstByte, thePayload[0]);
}
+
seen++;
}
}
@@ -446,26 +457,26 @@ public class TestPayloadSpans extends Lu
return searcher;
}
- private void checkSpans(Spans spans, int numSpans, int[] numPayloads) throws IOException {
+ private void checkSpans(Spans spans, PayloadSpanCollector collector, int numSpans, int[] numPayloads) throws IOException {
int cnt = 0;
while (spans.nextDoc() != Spans.NO_MORE_DOCS) {
while (spans.nextStartPosition() != Spans.NO_MORE_POSITIONS) {
if(VERBOSE)
System.out.println("\nSpans Dump --");
- if (spans.isPayloadAvailable()) {
- Collection<byte[]> payload = spans.getPayload();
- if(VERBOSE) {
- System.out.println("payloads for span:" + payload.size());
- for (final byte [] bytes : payload) {
- System.out.println("doc:" + spans.docID() + " s:" + spans.startPosition() + " e:" + spans.endPosition() + " "
+ collector.reset();
+ spans.collect(collector);
+
+ Collection<byte[]> payload = collector.getPayloads();
+ if(VERBOSE) {
+ System.out.println("payloads for span:" + payload.size());
+ for (final byte [] bytes : payload) {
+ System.out.println("doc:" + spans.docID() + " s:" + spans.startPosition() + " e:" + spans.endPosition() + " "
+ new String(bytes, StandardCharsets.UTF_8));
- }
}
- assertEquals("payload size", numPayloads[cnt], payload.size());
- } else { // no payload available
- assertFalse("Expected spans:" + numPayloads[cnt] + " found: 0", numPayloads.length > 0 && numPayloads[cnt] > 0 );
}
+ assertEquals("payload size", numPayloads[cnt], payload.size());
+
cnt++;
}
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/JustCompileSearchSpans.java Tue May 19 09:02:38 2015
@@ -17,17 +17,16 @@ package org.apache.lucene.search.spans;
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.Collection;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
import org.apache.lucene.search.similarities.Similarity;
import org.apache.lucene.util.Bits;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Set;
+
/**
* Holds all implementations of classes in the o.a.l.s.spans package as a
* back-compatibility test. It does not run any tests per-se, however if
@@ -65,19 +64,14 @@ final class JustCompileSearchSpans {
public int endPosition() {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
-
- @Override
- public int nextStartPosition() throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
@Override
- public Collection<byte[]> getPayload() {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
+ public void collect(SpanCollector collector) throws IOException {
+
}
@Override
- public boolean isPayloadAvailable() {
+ public int nextStartPosition() throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -100,7 +94,7 @@ final class JustCompileSearchSpans {
}
@Override
- public Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts) {
+ public Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts, SpanCollector collector) {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
@@ -137,19 +131,14 @@ final class JustCompileSearchSpans {
public int endPosition() {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
-
- @Override
- public int nextStartPosition() throws IOException {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
- }
@Override
- public Collection<byte[]> getPayload() {
- throw new UnsupportedOperationException(UNSUPPORTED_MSG);
+ public void collect(SpanCollector collector) throws IOException {
+
}
@Override
- public boolean isPayloadAvailable() {
+ public int nextStartPosition() throws IOException {
throw new UnsupportedOperationException(UNSUPPORTED_MSG);
}
Modified: lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java (original)
+++ lucene/dev/trunk/lucene/core/src/test/org/apache/lucene/search/spans/MultiSpansWrapper.java Tue May 19 09:02:38 2015
@@ -17,11 +17,6 @@ package org.apache.lucene.search.spans;
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReader;
import org.apache.lucene.index.LeafReaderContext;
@@ -30,6 +25,11 @@ import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermContext;
import org.apache.lucene.util.Bits;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+
/**
*
* A wrapper to perform span operations on a non-leaf reader context
@@ -40,6 +40,10 @@ import org.apache.lucene.util.Bits;
public class MultiSpansWrapper {
public static Spans wrap(IndexReader reader, SpanQuery spanQuery) throws IOException {
+ return wrap(reader, spanQuery, SpanCollector.NO_OP);
+ }
+
+ public static Spans wrap(IndexReader reader, SpanQuery spanQuery, SpanCollector collector) throws IOException {
LeafReader lr = SlowCompositeReaderWrapper.wrap(reader); // slow, but ok for testing
LeafReaderContext lrContext = lr.getContext();
SpanQuery rewrittenQuery = (SpanQuery) spanQuery.rewrite(lr); // get the term contexts so getSpans can be called directly
@@ -50,7 +54,7 @@ public class MultiSpansWrapper {
TermContext termContext = TermContext.build(lrContext, term);
termContexts.put(term, termContext);
}
- Spans actSpans = spanQuery.getSpans(lrContext, new Bits.MatchAllBits(lr.numDocs()), termContexts);
+ Spans actSpans = spanQuery.getSpans(lrContext, new Bits.MatchAllBits(lr.numDocs()), termContexts, collector);
return actSpans;
}
}
Modified: lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java (original)
+++ lucene/dev/trunk/lucene/highlighter/src/java/org/apache/lucene/search/highlight/WeightedSpanTermExtractor.java Tue May 19 09:02:38 2015
@@ -17,17 +17,6 @@ package org.apache.lucene.search.highlig
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-import java.util.TreeSet;
-
import org.apache.lucene.analysis.CachingTokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.index.BinaryDocValues;
@@ -59,6 +48,7 @@ import org.apache.lucene.search.TermQuer
import org.apache.lucene.search.join.ToChildBlockJoinQuery;
import org.apache.lucene.search.join.ToParentBlockJoinQuery;
import org.apache.lucene.search.spans.FieldMaskingSpanQuery;
+import org.apache.lucene.search.spans.SpanCollector;
import org.apache.lucene.search.spans.SpanFirstQuery;
import org.apache.lucene.search.spans.SpanNearQuery;
import org.apache.lucene.search.spans.SpanNotQuery;
@@ -69,6 +59,17 @@ import org.apache.lucene.search.spans.Sp
import org.apache.lucene.util.Bits;
import org.apache.lucene.util.IOUtils;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.TreeSet;
+
/**
* Class used to extract {@link WeightedSpanTerm}s from a {@link Query} based on whether
@@ -307,7 +308,7 @@ public class WeightedSpanTermExtractor {
termContexts.put(term, TermContext.build(context, term));
}
Bits acceptDocs = context.reader().getLiveDocs();
- final Spans spans = q.getSpans(context, acceptDocs, termContexts);
+ final Spans spans = q.getSpans(context, acceptDocs, termContexts, SpanCollector.NO_OP);
if (spans == null) {
return;
}
Modified: lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java (original)
+++ lucene/dev/trunk/lucene/highlighter/src/test/org/apache/lucene/search/highlight/HighlighterTest.java Tue May 19 09:02:38 2015
@@ -85,7 +85,7 @@ import org.apache.lucene.search.spans.Sp
import org.apache.lucene.search.spans.SpanNearQuery;
import org.apache.lucene.search.spans.SpanNotQuery;
import org.apache.lucene.search.spans.SpanOrQuery;
-import org.apache.lucene.search.spans.SpanPayloadCheckQuery;
+import org.apache.lucene.search.payloads.SpanPayloadCheckQuery;
import org.apache.lucene.search.spans.SpanQuery;
import org.apache.lucene.search.spans.SpanTermQuery;
import org.apache.lucene.store.Directory;
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpanQuery.java Tue May 19 09:02:38 2015
@@ -17,10 +17,6 @@ package org.apache.lucene.search.spans;
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.Map;
-import java.util.Set;
-
import org.apache.lucene.index.IndexReader;
import org.apache.lucene.index.LeafReaderContext;
import org.apache.lucene.index.Term;
@@ -29,6 +25,10 @@ import org.apache.lucene.search.IndexSea
import org.apache.lucene.search.Query;
import org.apache.lucene.util.Bits;
+import java.io.IOException;
+import java.util.Map;
+import java.util.Set;
+
/** Wraps a span query with asserts */
public class AssertingSpanQuery extends SpanQuery {
private final SpanQuery in;
@@ -43,8 +43,8 @@ public class AssertingSpanQuery extends
}
@Override
- public Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts) throws IOException {
- Spans spans = in.getSpans(context, acceptDocs, termContexts);
+ public Spans getSpans(LeafReaderContext context, Bits acceptDocs, Map<Term,TermContext> termContexts, SpanCollector collector) throws IOException {
+ Spans spans = in.getSpans(context, acceptDocs, termContexts, collector);
if (spans == null) {
return null;
} else {
Modified: lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpans.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpans.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpans.java (original)
+++ lucene/dev/trunk/lucene/test-framework/src/java/org/apache/lucene/search/spans/AssertingSpans.java Tue May 19 09:02:38 2015
@@ -17,12 +17,10 @@ package org.apache.lucene.search.spans;
* limitations under the License.
*/
-import java.io.IOException;
-import java.util.Collection;
-
import org.apache.lucene.search.DocIdSetIterator;
import org.apache.lucene.search.TwoPhaseIterator;
-import org.apache.lucene.search.spans.Spans;
+
+import java.io.IOException;
/**
* Wraps a Spans with additional asserts
@@ -125,19 +123,13 @@ class AssertingSpans extends Spans {
checkCurrentPositions();
return in.endPosition();
}
-
- @Override
- public Collection<byte[]> getPayload() throws IOException {
- assert state == State.ITERATING : "getPayload() called in illegal state: " + state + ": " + in;
- return in.getPayload();
- }
-
+
@Override
- public boolean isPayloadAvailable() throws IOException {
- assert state == State.ITERATING : "isPayloadAvailable() called in illegal state: " + state + ": " + in;
- return in.isPayloadAvailable();
+ public void collect(SpanCollector collector) throws IOException {
+ assert state == State.ITERATING : "collect() called in illegal state: " + state + ": " + in;
+ in.collect(collector);
}
-
+
@Override
public int docID() {
int doc = in.docID();
Modified: lucene/dev/trunk/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java?rev=1680205&r1=1680204&r2=1680205&view=diff
==============================================================================
--- lucene/dev/trunk/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java (original)
+++ lucene/dev/trunk/solr/core/src/test/org/apache/solr/highlight/HighlighterTest.java Tue May 19 09:02:38 2015
@@ -28,7 +28,7 @@ import org.apache.lucene.analysis.TokenS
import org.apache.lucene.analysis.core.WhitespaceAnalyzer;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.Query;
-import org.apache.lucene.search.spans.SpanPayloadCheckQuery;
+import org.apache.lucene.search.payloads.SpanPayloadCheckQuery;
import org.apache.lucene.search.spans.SpanTermQuery;
import org.apache.solr.SolrTestCaseJ4;
import org.apache.solr.common.params.HighlightParams;