blob: 1b856c9026e59816fe525729d5c0b6e01eff38f0 [file] [log] [blame]
Nils Diewaldd732e542014-11-12 17:54:02 +00001package de.ids_mannheim.korap.index;
2
3import java.util.*;
4import java.io.*;
5
6import org.apache.lucene.util.Version;
7import org.apache.lucene.util.BytesRef;
8import org.apache.lucene.util.Bits;
9
10import static org.junit.Assert.*;
11import org.junit.Test;
12import org.junit.Ignore;
13import org.junit.runner.RunWith;
14import org.junit.runners.JUnit4;
15
Nils Diewalda14ecd62015-02-26 21:00:20 +000016import de.ids_mannheim.korap.KrillIndex;
Nils Diewald0339d462015-02-26 14:53:56 +000017import de.ids_mannheim.korap.KrillQuery;
Nils Diewald392bcf32015-02-26 20:01:17 +000018import de.ids_mannheim.korap.response.Match;
Nils Diewald50e90e92015-02-26 21:25:25 +000019import de.ids_mannheim.korap.response.MatchCollector;
Nils Diewald2d5f8102015-02-26 21:07:54 +000020import de.ids_mannheim.korap.KrillCollection;
Nils Diewaldbbd39a52015-02-23 19:56:57 +000021import de.ids_mannheim.korap.Krill;
Nils Diewaldd732e542014-11-12 17:54:02 +000022import de.ids_mannheim.korap.query.SpanNextQuery;
Nils Diewaldd732e542014-11-12 17:54:02 +000023import de.ids_mannheim.korap.query.SpanClassQuery;
24import de.ids_mannheim.korap.index.FieldDocument;
Nils Diewalde4986d72015-02-27 17:35:00 +000025import de.ids_mannheim.korap.index.MultiTermTokenStream;
Nils Diewaldd732e542014-11-12 17:54:02 +000026
27import org.apache.lucene.search.spans.SpanQuery;
28import org.apache.lucene.search.spans.SpanOrQuery;
29import org.apache.lucene.search.spans.SpanTermQuery;
30import org.apache.lucene.index.Term;
31
32// mvn -Dtest=TestWithinIndex#indexExample1 test
33
34// match is shrink and split
35
36@RunWith(JUnit4.class)
37public class TestMatchCollector {
38
39 @Test
40 public void indexExample1 () throws IOException {
Nils Diewalda14ecd62015-02-26 21:00:20 +000041 KrillIndex ki = new KrillIndex();
Nils Diewaldd732e542014-11-12 17:54:02 +000042
43 // abcabcabac
44 FieldDocument fd = new FieldDocument();
45 fd.addString("ID", "doc-1");
46 fd.addString("UID", "1");
47 fd.addTV("base",
48 "abcabcabac",
49 "[(0-1)s:a|i:a|_0#0-1|-:t$<i>10]" +
50 "[(1-2)s:b|i:b|_1#1-2]" +
51 "[(2-3)s:c|i:c|_2#2-3]" +
52 "[(3-4)s:a|i:a|_3#3-4]" +
53 "[(4-5)s:b|i:b|_4#4-5]" +
54 "[(5-6)s:c|i:c|_5#5-6]" +
55 "[(6-7)s:a|i:a|_6#6-7]" +
56 "[(7-8)s:b|i:b|_7#7-8]" +
57 "[(8-9)s:a|i:a|_8#8-9]" +
58 "[(9-10)s:c|i:c|_9#9-10]");
59 ki.addDoc(fd);
60
61 fd = new FieldDocument();
62 fd.addString("ID", "doc-2");
63 fd.addString("UID", "2");
64 fd.addTV("base",
65 "bcbabd",
66 "[(0-1)s:b|i:b|_1#0-1]" +
67 "[(1-2)s:c|i:c|s:b|_2#1-2]" +
68 "[(2-3)s:b|i:b|_3#2-3|<>:e#2-4$<i>4]" +
69 "[(3-4)s:a|i:a|_4#3-4|<>:e#3-5$<i>5|<>:e2#3-5$<i>5]" +
70 "[(4-5)s:b|i:b|s:c|_5#4-5]" +
71 "[(5-6)s:d|i:d|_6#5-6|<>:e2#5-6$<i>6]");
72 ki.addDoc(fd);
73
74 ki.commit();
75
76 SpanQuery sq;
77
78 sq = new SpanTermQuery(new Term("base", "s:b"));
Nils Diewaldf5ab4b22015-02-25 20:55:16 +000079 Krill krill = new Krill(sq);
80 krill.getMeta().setCount((short) 10);
Nils Diewaldd732e542014-11-12 17:54:02 +000081 MatchCollector mc = ki.collect(
Nils Diewaldf5ab4b22015-02-25 20:55:16 +000082 krill,
Nils Diewaldd732e542014-11-12 17:54:02 +000083 new MatchCollector()
84 );
85
86 assertEquals(mc.getTotalResults(), 5);
87 assertEquals(mc.getTotalResultDocs(), 2);
88 };
89};