blob: 0c85b64115f4eb037ed824477d41c716b5ea5b35 [file] [log] [blame]
Nils Diewaldd732e542014-11-12 17:54:02 +00001package de.ids_mannheim.korap.index;
2
margaretha4f995582015-12-14 14:14:34 +01003import static org.junit.Assert.assertEquals;
Nils Diewaldd732e542014-11-12 17:54:02 +00004
margaretha4f995582015-12-14 14:14:34 +01005import java.io.IOException;
Nils Diewaldd732e542014-11-12 17:54:02 +00006
margaretha4f995582015-12-14 14:14:34 +01007import org.apache.lucene.index.Term;
8import org.apache.lucene.search.spans.SpanQuery;
9import org.apache.lucene.search.spans.SpanTermQuery;
Nils Diewaldd732e542014-11-12 17:54:02 +000010import org.junit.Test;
Nils Diewaldd732e542014-11-12 17:54:02 +000011import org.junit.runner.RunWith;
12import org.junit.runners.JUnit4;
13
Nils Diewaldbbd39a52015-02-23 19:56:57 +000014import de.ids_mannheim.korap.Krill;
margaretha4f995582015-12-14 14:14:34 +010015import de.ids_mannheim.korap.KrillIndex;
16import de.ids_mannheim.korap.response.MatchCollector;
Nils Diewaldd732e542014-11-12 17:54:02 +000017
18// mvn -Dtest=TestWithinIndex#indexExample1 test
19
20// match is shrink and split
21
22@RunWith(JUnit4.class)
23public class TestMatchCollector {
24
25 @Test
26 public void indexExample1 () throws IOException {
Nils Diewaldbb33da22015-03-04 16:24:25 +000027 KrillIndex ki = new KrillIndex();
Nils Diewaldd732e542014-11-12 17:54:02 +000028
Nils Diewaldbb33da22015-03-04 16:24:25 +000029 // abcabcabac
30 FieldDocument fd = new FieldDocument();
31 fd.addString("ID", "doc-1");
32 fd.addString("UID", "1");
margaretha4f995582015-12-14 14:14:34 +010033 fd.addTV("base", "abcabcabac", "[(0-1)s:a|i:a|_0$<i>0<i>1|-:t$<i>10]"
34 + "[(1-2)s:b|i:b|_1$<i>1<i>2]" + "[(2-3)s:c|i:c|_2$<i>2<i>3]"
35 + "[(3-4)s:a|i:a|_3$<i>3<i>4]" + "[(4-5)s:b|i:b|_4$<i>4<i>5]"
36 + "[(5-6)s:c|i:c|_5$<i>5<i>6]" + "[(6-7)s:a|i:a|_6$<i>6<i>7]"
37 + "[(7-8)s:b|i:b|_7$<i>7<i>8]" + "[(8-9)s:a|i:a|_8$<i>8<i>9]"
38 + "[(9-10)s:c|i:c|_9$<i>9<i>10]");
Nils Diewaldbb33da22015-03-04 16:24:25 +000039 ki.addDoc(fd);
Nils Diewaldd732e542014-11-12 17:54:02 +000040
Nils Diewaldbb33da22015-03-04 16:24:25 +000041 fd = new FieldDocument();
42 fd.addString("ID", "doc-2");
43 fd.addString("UID", "2");
margaretha4f995582015-12-14 14:14:34 +010044 fd.addTV("base", "bcbabd", "[(0-1)s:b|i:b|_1$<i>0<i>1]"
45 + "[(1-2)s:c|i:c|s:b|_2$<i>1<i>2]"
46 + "[(2-3)s:b|i:b|_3$<i>2<i>3|<>:e#2-4$<i>4]"
47 + "[(3-4)s:a|i:a|_4$<i>3<i>4|<>:e#3-5$<i>5|<>:e2#3-5$<i>5]"
48 + "[(4-5)s:b|i:b|s:c|_5$<i>4<i>5]"
49 + "[(5-6)s:d|i:d|_6$<i>5<i>6|<>:e2#5-6$<i>6]");
Nils Diewaldbb33da22015-03-04 16:24:25 +000050 ki.addDoc(fd);
Nils Diewaldd732e542014-11-12 17:54:02 +000051
Nils Diewaldbb33da22015-03-04 16:24:25 +000052 ki.commit();
Nils Diewaldd732e542014-11-12 17:54:02 +000053
Nils Diewaldbb33da22015-03-04 16:24:25 +000054 SpanQuery sq;
Nils Diewaldd732e542014-11-12 17:54:02 +000055
Nils Diewaldbb33da22015-03-04 16:24:25 +000056 sq = new SpanTermQuery(new Term("base", "s:b"));
57 Krill krill = new Krill(sq);
58 krill.getMeta().setCount((short) 10);
59 MatchCollector mc = ki.collect(krill, new MatchCollector());
Nils Diewaldd732e542014-11-12 17:54:02 +000060
Nils Diewaldbb33da22015-03-04 16:24:25 +000061 assertEquals(mc.getTotalResults(), 5);
62 assertEquals(mc.getTotalResultDocs(), 2);
Nils Diewaldd732e542014-11-12 17:54:02 +000063 };
64};