| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 1 | package de.ids_mannheim.korap.index; |
| 2 | |
| 3 | import java.util.*; |
| 4 | import java.io.*; |
| 5 | |
| 6 | import org.apache.lucene.util.Version; |
| 7 | import org.apache.lucene.util.BytesRef; |
| 8 | import org.apache.lucene.util.Bits; |
| 9 | |
| 10 | import static org.junit.Assert.*; |
| 11 | import org.junit.Test; |
| 12 | import org.junit.Ignore; |
| 13 | import org.junit.runner.RunWith; |
| 14 | import org.junit.runners.JUnit4; |
| 15 | |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 16 | import de.ids_mannheim.korap.KrillIndex; |
| Nils Diewald | 0339d46 | 2015-02-26 14:53:56 +0000 | [diff] [blame] | 17 | import de.ids_mannheim.korap.KrillQuery; |
| Nils Diewald | 392bcf3 | 2015-02-26 20:01:17 +0000 | [diff] [blame] | 18 | import de.ids_mannheim.korap.response.Match; |
| Nils Diewald | 50e90e9 | 2015-02-26 21:25:25 +0000 | [diff] [blame] | 19 | import de.ids_mannheim.korap.response.MatchCollector; |
| Nils Diewald | 2d5f810 | 2015-02-26 21:07:54 +0000 | [diff] [blame] | 20 | import de.ids_mannheim.korap.KrillCollection; |
| Nils Diewald | bbd39a5 | 2015-02-23 19:56:57 +0000 | [diff] [blame] | 21 | import de.ids_mannheim.korap.Krill; |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 22 | import de.ids_mannheim.korap.query.SpanNextQuery; |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 23 | import de.ids_mannheim.korap.query.SpanClassQuery; |
| 24 | import de.ids_mannheim.korap.index.FieldDocument; |
| Nils Diewald | e4986d7 | 2015-02-27 17:35:00 +0000 | [diff] [blame] | 25 | import de.ids_mannheim.korap.index.MultiTermTokenStream; |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 26 | |
| 27 | import org.apache.lucene.search.spans.SpanQuery; |
| 28 | import org.apache.lucene.search.spans.SpanOrQuery; |
| 29 | import org.apache.lucene.search.spans.SpanTermQuery; |
| 30 | import org.apache.lucene.index.Term; |
| 31 | |
| 32 | // mvn -Dtest=TestWithinIndex#indexExample1 test |
| 33 | |
| 34 | // match is shrink and split |
| 35 | |
| 36 | @RunWith(JUnit4.class) |
| 37 | public class TestMatchCollector { |
| 38 | |
| 39 | @Test |
| 40 | public void indexExample1 () throws IOException { |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 41 | KrillIndex ki = new KrillIndex(); |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 42 | |
| 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 Diewald | f5ab4b2 | 2015-02-25 20:55:16 +0000 | [diff] [blame] | 79 | Krill krill = new Krill(sq); |
| 80 | krill.getMeta().setCount((short) 10); |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 81 | MatchCollector mc = ki.collect( |
| Nils Diewald | f5ab4b2 | 2015-02-25 20:55:16 +0000 | [diff] [blame] | 82 | krill, |
| Nils Diewald | d732e54 | 2014-11-12 17:54:02 +0000 | [diff] [blame] | 83 | new MatchCollector() |
| 84 | ); |
| 85 | |
| 86 | assertEquals(mc.getTotalResults(), 5); |
| 87 | assertEquals(mc.getTotalResultDocs(), 2); |
| 88 | }; |
| 89 | }; |