TestSpanspublic class TestSpans extends TestCase 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.
See the License for the specific language governing permissions and
limitations under the License. |
Fields Summary |
---|
private IndexSearcher | searcher | public static final String | field | private String[] | docFields |
Methods Summary |
---|
private void | checkHits(org.apache.lucene.search.Query query, int[] results)
CheckHits.checkHits(query, field, searcher, results);
| public org.apache.lucene.search.spans.SpanTermQuery | makeSpanTermQuery(java.lang.String text)
return new SpanTermQuery(new Term(field, text));
| private org.apache.lucene.search.spans.Spans | orSpans(java.lang.String[] terms)
SpanQuery[] sqa = new SpanQuery[terms.length];
for (int i = 0; i < terms.length; i++) {
sqa[i] = makeSpanTermQuery(terms[i]);
}
return (new SpanOrQuery(sqa)).getSpans(searcher.getIndexReader());
| public void | orderedSlopTest1Equal(int slop, int[] expectedDocs)
orderedSlopTest3SQ(
makeSpanTermQuery("u2"),
makeSpanTermQuery("u2"),
makeSpanTermQuery("u1"),
slop,
expectedDocs);
| public void | orderedSlopTest3(int slop, int[] expectedDocs)
orderedSlopTest3SQ(
makeSpanTermQuery("w1"),
makeSpanTermQuery("w2"),
makeSpanTermQuery("w3"),
slop,
expectedDocs);
| public void | orderedSlopTest3Equal(int slop, int[] expectedDocs)
orderedSlopTest3SQ(
makeSpanTermQuery("w1"),
makeSpanTermQuery("w3"),
makeSpanTermQuery("w3"),
slop,
expectedDocs);
| private void | orderedSlopTest3SQ(org.apache.lucene.search.spans.SpanQuery q1, org.apache.lucene.search.spans.SpanQuery q2, org.apache.lucene.search.spans.SpanQuery q3, int slop, int[] expectedDocs)
boolean ordered = true;
SpanNearQuery snq = new SpanNearQuery( new SpanQuery[]{q1,q2,q3}, slop, ordered);
checkHits(snq, expectedDocs);
| public void | setUp()
RAMDirectory directory = new RAMDirectory();
IndexWriter writer= new IndexWriter(directory, new WhitespaceAnalyzer(), true);
for (int i = 0; i < docFields.length; i++) {
Document doc = new Document();
doc.add(new Field(field, docFields[i], Field.Store.YES, Field.Index.TOKENIZED));
writer.addDocument(doc);
}
writer.close();
searcher = new IndexSearcher(directory);
//System.out.println("set up " + getName());
| public void | testSpanNearOrdered01()
orderedSlopTest3(0, new int[] {0});
| public void | testSpanNearOrdered02()
orderedSlopTest3(1, new int[] {0,1});
| public void | testSpanNearOrdered03()
orderedSlopTest3(2, new int[] {0,1,2});
| public void | testSpanNearOrdered04()
orderedSlopTest3(3, new int[] {0,1,2,3});
| public void | testSpanNearOrdered05()
orderedSlopTest3(4, new int[] {0,1,2,3});
| public void | testSpanNearOrderedEqual01()
orderedSlopTest3Equal(0, new int[] {});
| public void | testSpanNearOrderedEqual02()
orderedSlopTest3Equal(1, new int[] {1});
| public void | testSpanNearOrderedEqual03()
orderedSlopTest3Equal(2, new int[] {1});
| public void | testSpanNearOrderedEqual04()
orderedSlopTest3Equal(3, new int[] {1,3});
| public void | testSpanNearOrderedEqual11()
orderedSlopTest1Equal(0, new int[] {4});
| public void | testSpanNearOrderedEqual12()
orderedSlopTest1Equal(0, new int[] {4});
| public void | testSpanNearOrderedEqual13()
orderedSlopTest1Equal(1, new int[] {4,5,6});
| public void | testSpanNearOrderedEqual14()
orderedSlopTest1Equal(2, new int[] {4,5,6,7});
| public void | testSpanNearOrderedEqual15()
orderedSlopTest1Equal(3, new int[] {4,5,6,7});
| public void | testSpanNearOrderedOverlap()
boolean ordered = true;
int slop = 1;
SpanNearQuery snq = new SpanNearQuery(
new SpanQuery[] {
makeSpanTermQuery("t1"),
makeSpanTermQuery("t2"),
makeSpanTermQuery("t3") },
slop,
ordered);
Spans spans = snq.getSpans(searcher.getIndexReader());
assertTrue("first range", spans.next());
assertEquals("first doc", 11, spans.doc());
assertEquals("first start", 0, spans.start());
assertEquals("first end", 4, spans.end());
assertTrue("second range", spans.next());
assertEquals("second doc", 11, spans.doc());
assertEquals("second start", 2, spans.start());
assertEquals("second end", 6, spans.end());
assertFalse("third range", spans.next());
| public void | testSpanOrDouble()
Spans spans = orSpans(new String[] {"w5", "yy"});
tstNextSpans(spans, 0, 4, 5);
tstNextSpans(spans, 2, 3, 4);
tstNextSpans(spans, 3, 4, 5);
tstNextSpans(spans, 7, 3, 4);
assertFalse("final next", spans.next());
| public void | testSpanOrDoubleSkip()
Spans spans = orSpans(new String[] {"w5", "yy"});
assertTrue("initial skipTo", spans.skipTo(3));
assertEquals("doc", 3, spans.doc());
assertEquals("start", 4, spans.start());
assertEquals("end", 5, spans.end());
tstNextSpans(spans, 7, 3, 4);
assertFalse("final next", spans.next());
| public void | testSpanOrEmpty()
Spans spans = orSpans(new String[0]);
assertFalse("empty next", spans.next());
| public void | testSpanOrSingle()
Spans spans = orSpans(new String[] {"w5"});
tstNextSpans(spans, 0, 4, 5);
assertFalse("final next", spans.next());
| public void | testSpanOrTripleSameDoc()
Spans spans = orSpans(new String[] {"t1", "t2", "t3"});
tstNextSpans(spans, 11, 0, 1);
tstNextSpans(spans, 11, 1, 2);
tstNextSpans(spans, 11, 2, 3);
tstNextSpans(spans, 11, 3, 4);
tstNextSpans(spans, 11, 4, 5);
tstNextSpans(spans, 11, 5, 6);
assertFalse("final next", spans.next());
| public void | testSpanOrUnused()
Spans spans = orSpans(new String[] {"w5", "unusedTerm", "yy"});
tstNextSpans(spans, 0, 4, 5);
tstNextSpans(spans, 2, 3, 4);
tstNextSpans(spans, 3, 4, 5);
tstNextSpans(spans, 7, 3, 4);
assertFalse("final next", spans.next());
| private void | tstNextSpans(org.apache.lucene.search.spans.Spans spans, int doc, int start, int end)
assertTrue("next", spans.next());
assertEquals("doc", doc, spans.doc());
assertEquals("start", start, spans.start());
assertEquals("end", end, spans.end());
|
|