| Eliza Margaretha | 0192918 | 2014-02-19 11:48:59 +0000 | [diff] [blame] | 1 | package de.ids_mannheim.korap.index; |
| 2 | |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 3 | import static org.junit.Assert.assertEquals; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 4 | |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 5 | import java.io.IOException; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 6 | |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 7 | import org.apache.lucene.index.Term; |
| 8 | import org.apache.lucene.search.spans.SpanQuery; |
| 9 | import org.apache.lucene.search.spans.SpanTermQuery; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 10 | import org.junit.Test; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 11 | import org.junit.runner.RunWith; |
| 12 | import org.junit.runners.JUnit4; |
| 13 | |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 14 | import de.ids_mannheim.korap.KrillIndex; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 15 | import de.ids_mannheim.korap.query.SpanClassQuery; |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 16 | import de.ids_mannheim.korap.query.SpanNextQuery; |
| 17 | import de.ids_mannheim.korap.response.Result; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 18 | |
| 19 | // mvn -Dtest=TestWithinIndex#indexExample1 test |
| 20 | |
| 21 | @RunWith(JUnit4.class) |
| 22 | public class TestClassIndex { |
| 23 | |
| 24 | @Test |
| 25 | public void indexExample1 () throws IOException { |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 26 | KrillIndex ki = new KrillIndex(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 27 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 28 | // abcabcabac |
| 29 | FieldDocument fd = new FieldDocument(); |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 30 | fd.addTV("base", "abcabcabac", "[(0-1)s:a|i:a|_0$<i>0<i>1|-:t$<i>10]" |
| 31 | + "[(1-2)s:b|i:b|_1$<i>1<i>2]" + "[(2-3)s:c|i:c|_2$<i>2<i>3]" |
| 32 | + "[(3-4)s:a|i:a|_3$<i>3<i>4]" + "[(4-5)s:b|i:b|_4$<i>4<i>5]" |
| 33 | + "[(5-6)s:c|i:c|_5$<i>5<i>6]" + "[(6-7)s:a|i:a|_6$<i>6<i>7]" |
| 34 | + "[(7-8)s:b|i:b|_7$<i>7<i>8]" + "[(8-9)s:a|i:a|_8$<i>8<i>9]" |
| 35 | + "[(9-10)s:c|i:c|_9$<i>9<i>10]"); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 36 | ki.addDoc(fd); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 37 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 38 | ki.commit(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 39 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 40 | SpanQuery sq; |
| 41 | Result kr; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 42 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 43 | sq = new SpanNextQuery(new SpanTermQuery(new Term("base", "s:b")), |
| 44 | new SpanTermQuery(new Term("base", "s:a"))); |
| 45 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 46 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 47 | assertEquals("totalResults", kr.getTotalResults(), 1); |
| 48 | assertEquals("StartPos (0)", 7, kr.getMatch(0).startPos); |
| 49 | assertEquals("EndPos (0)", 9, kr.getMatch(0).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 50 | assertEquals("SnippetBrackets (0)", "... bcabca[[ba]]c", |
| 51 | kr.getMatch(0).getSnippetBrackets()); |
| 52 | assertEquals("SnippetHTML (0)", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 53 | "<span class=\"context-left\"><span class=\"more\">" |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 54 | + "</span>bcabca</span><span class=\"match\"><mark>ba</mark></span><span class=\"context-right" |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 55 | + "\">c</span>", |
| 56 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 57 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 58 | sq = new SpanTermQuery(new Term("base", "s:b")); |
| 59 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 60 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 61 | assertEquals("totalResults", kr.getTotalResults(), 3); |
| 62 | assertEquals("StartPos (0)", 1, kr.getMatch(0).startPos); |
| 63 | assertEquals("EndPos (0)", 2, kr.getMatch(0).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 64 | assertEquals("SnippetBrackets (0)", "a[[b]]cabcab ...", |
| 65 | kr.getMatch(0).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 66 | |
| 67 | |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 68 | assertEquals("SnippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 69 | "<span class=\"context-left\">a</span><span class=\"match\"><mark>" |
| 70 | + "b</mark></span><span class=\"context-right\">cabcab<span class=\"more\"></span></span>", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 71 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 72 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 73 | assertEquals("StartPos (1)", 4, kr.getMatch(1).startPos); |
| 74 | assertEquals("EndPos (1)", 5, kr.getMatch(1).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 75 | assertEquals("SnippetBrackets (1)", "abca[[b]]cabac", |
| 76 | kr.getMatch(1).getSnippetBrackets()); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 77 | assertEquals("StartPos (2)", 7, kr.getMatch(2).startPos); |
| 78 | assertEquals("EndPos (2)", 8, kr.getMatch(2).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 79 | assertEquals("SnippetBrackets (2)", "... bcabca[[b]]ac", |
| 80 | kr.getMatch(2).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 81 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 82 | sq = new SpanClassQuery(new SpanTermQuery(new Term("base", "s:b"))); |
| 83 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 84 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 85 | assertEquals("totalResults", kr.getTotalResults(), 3); |
| 86 | assertEquals("StartPos (0)", 1, kr.getMatch(0).startPos); |
| 87 | assertEquals("EndPos (0)", 2, kr.getMatch(0).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 88 | assertEquals("snippetBrackets (0)", "a[[{1:b}]]cabcab ...", |
| 89 | kr.getMatch(0).getSnippetBrackets()); |
| 90 | assertEquals("snippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 91 | "<span class=\"context-left\">a</span><span class=\"match\"><mark>" |
| 92 | + "<mark class=\"class-1 level-0\">b</mark></mark></span><span class=\"context-right\">cabcab<span " |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 93 | + "class=\"more\"></span></span>", |
| 94 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 95 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 96 | assertEquals("StartPos (1)", 4, kr.getMatch(1).startPos); |
| 97 | assertEquals("EndPos (1)", 5, kr.getMatch(1).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 98 | assertEquals("snippetBrackets (1)", "abca[[{1:b}]]cabac", |
| 99 | kr.getMatch(1).getSnippetBrackets()); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 100 | |
| 101 | assertEquals("StartPos (2)", 7, kr.getMatch(2).startPos); |
| 102 | assertEquals("EndPos (2)", 8, kr.getMatch(2).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 103 | assertEquals("snippetBrackets (2)", "... bcabca[[{1:b}]]ac", |
| 104 | kr.getMatch(2).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 105 | |
| 106 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 107 | sq = new SpanNextQuery(new SpanTermQuery(new Term("base", "s:a")), |
| 108 | new SpanClassQuery(new SpanTermQuery(new Term("base", "s:b")), |
| 109 | (byte) 1)); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 110 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 111 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 112 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 113 | assertEquals("totalResults", kr.getTotalResults(), 3); |
| 114 | assertEquals("StartPos (0)", 0, kr.getMatch(0).startPos); |
| 115 | assertEquals("EndPos (0)", 2, kr.getMatch(0).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 116 | assertEquals("SnippetBrackets (0)", "[[a{1:b}]]cabcab ...", |
| 117 | kr.getMatch(0).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 118 | |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 119 | assertEquals("SnippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 120 | "<span class=\"context-left\"></span><span class=\"match\"><mark>a<mark class=\"class-1 level-0\">b</mark></mark></span><span class=\"context-right\">cabcab<span class=\"more\"></span></span>", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 121 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 122 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 123 | assertEquals("StartPos (1)", 3, kr.getMatch(1).startPos); |
| 124 | assertEquals("EndPos (1)", 5, kr.getMatch(1).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 125 | assertEquals("SnippetBrackets (1)", "abc[[a{1:b}]]cabac", |
| 126 | kr.getMatch(1).getSnippetBrackets()); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 127 | assertEquals("StartPos (2)", 6, kr.getMatch(2).startPos); |
| 128 | assertEquals("EndPos (2)", 8, kr.getMatch(2).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 129 | assertEquals("SnippetBrackets (2)", "abcabc[[a{1:b}]]ac", |
| 130 | kr.getMatch(2).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 131 | |
| 132 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 133 | // abcabcabac |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 134 | sq = new SpanNextQuery( |
| 135 | new SpanClassQuery(new SpanTermQuery(new Term("base", "s:a")), |
| 136 | (byte) 2), |
| 137 | new SpanClassQuery(new SpanTermQuery(new Term("base", "s:b")), |
| 138 | (byte) 3)); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 139 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 140 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 141 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 142 | assertEquals("StartPos (0)", 0, kr.getMatch(0).startPos); |
| 143 | assertEquals("EndPos (0)", 2, kr.getMatch(0).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 144 | assertEquals("SnippetBrackets (0)", "[[{2:a}{3:b}]]cabcab ...", |
| 145 | kr.getMatch(0).getSnippetBrackets()); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 146 | assertEquals("StartPos (1)", 3, kr.getMatch(1).startPos); |
| 147 | assertEquals("EndPos (1)", 5, kr.getMatch(1).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 148 | assertEquals("SnippetBrackets (1)", "abc[[{2:a}{3:b}]]cabac", |
| 149 | kr.getMatch(1).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 150 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 151 | assertEquals("StartPos (2)", 6, kr.getMatch(2).startPos); |
| 152 | assertEquals("EndPos (2)", 8, kr.getMatch(2).endPos); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 153 | assertEquals("SnippetBrackets (2)", "abcabc[[{2:a}{3:b}]]ac", |
| 154 | kr.getMatch(2).getSnippetBrackets()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 155 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 156 | // abcabcabac |
| 157 | sq = new SpanNextQuery(new SpanTermQuery(new Term("base", "s:a")), |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 158 | new SpanClassQuery(new SpanNextQuery( |
| 159 | new SpanTermQuery(new Term("base", "s:b")), |
| 160 | new SpanClassQuery( |
| 161 | new SpanTermQuery(new Term("base", "s:a")))), |
| 162 | (byte) 2)); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 163 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 164 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 165 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 166 | assertEquals("totalResults", kr.getTotalResults(), 1); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 167 | assertEquals("SnippetBrackets (0)", "abcabc[[a{2:b{1:a}}]]c", |
| 168 | kr.getMatch(0).getSnippetBrackets()); |
| 169 | assertEquals("SnippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 170 | "<span class=\"context-left\">abcabc</span><span class=\"match\"><mark>a<mark class=\"class-2 level-0\">b<mark class=\"class-1 level-1\">a</mark></mark></mark></span><span class=\"context-right\">c</span>", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 171 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 172 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 173 | // Offset tokens |
| 174 | kr = ki.search(sq, 0, (short) 10, true, (short) 2, true, (short) 2); |
| 175 | assertEquals("totalResults", kr.getTotalResults(), 1); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 176 | assertEquals("SnippetBrackets (0)", "... bc[[a{2:b{1:a}}]]c", |
| 177 | kr.getMatch(0).getSnippetBrackets()); |
| 178 | assertEquals("SnippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 179 | "<span class=\"context-left\"><span class=\"more\"></span>bc</span><span class=\"match\"><mark>a<mark class=\"class-2 level-0\">b<mark class=\"class-1 level-1\">a</mark></mark></mark></span><span class=\"context-right\">c</span>", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 180 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 181 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 182 | // Offset Characters |
| 183 | kr = ki.search(sq, 0, (short) 10, false, (short) 2, false, (short) 2); |
| 184 | assertEquals("totalResults", kr.getTotalResults(), 1); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 185 | assertEquals("SnippetBrackets (0)", "... bc[[a{2:b{1:a}}]]c", |
| 186 | kr.getMatch(0).getSnippetBrackets()); |
| 187 | assertEquals("SnippetHTML (0)", |
| Akron | f05fde6 | 2016-08-03 23:46:17 +0200 | [diff] [blame] | 188 | "<span class=\"context-left\"><span class=\"more\"></span>bc</span><span class=\"match\"><mark>a<mark class=\"class-2 level-0\">b<mark class=\"class-1 level-1\">a</mark></mark></mark></span><span class=\"context-right\">c</span>", |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 189 | kr.getMatch(0).getSnippetHTML()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 190 | |
| 191 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 192 | // System.err.println(kr.toJSON()); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 193 | |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 194 | sq = new SpanNextQuery( |
| 195 | new SpanClassQuery(new SpanTermQuery(new Term("base", "s:b")), |
| 196 | (byte) 1), |
| 197 | new SpanClassQuery(new SpanTermQuery(new Term("base", "s:c")), |
| 198 | (byte) 2)); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 199 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 200 | kr = ki.search(sq, (short) 10); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 201 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 202 | assertEquals("totalResults", kr.getTotalResults(), 2); |
| 203 | assertEquals("StartPos (0)", 1, kr.getMatch(0).startPos); |
| 204 | assertEquals("EndPos (0)", 3, kr.getMatch(0).endPos); |
| 205 | assertEquals("StartPos (1)", 4, kr.getMatch(1).startPos); |
| 206 | assertEquals("EndPos (1)", 6, kr.getMatch(1).endPos); |
| 207 | |
| 208 | assertEquals("Document count", 1, ki.numberOf("base", "documents")); |
| 209 | assertEquals("Token count", 10, ki.numberOf("base", "t")); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 210 | |
| 211 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 212 | sq = new SpanNextQuery(new SpanTermQuery(new Term("base", "s:a")), |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 213 | new SpanClassQuery(new SpanNextQuery( |
| 214 | new SpanTermQuery(new Term("base", "s:b")), |
| 215 | new SpanTermQuery(new Term("base", "s:c"))))); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 216 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 217 | kr = ki.search(sq, (short) 2); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 218 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 219 | assertEquals("totalResults", kr.getTotalResults(), 2); |
| 220 | assertEquals("StartPos (0)", 0, kr.getMatch(0).startPos); |
| 221 | assertEquals("EndPos (0)", 3, kr.getMatch(0).endPos); |
| 222 | assertEquals("StartPos (1)", 3, kr.getMatch(1).startPos); |
| 223 | assertEquals("EndPos (1)", 6, kr.getMatch(1).endPos); |
| 224 | |
| 225 | assertEquals(1, ki.numberOf("base", "documents")); |
| 226 | assertEquals(10, ki.numberOf("base", "t")); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 227 | }; |
| 228 | |
| 229 | |
| 230 | @Test |
| 231 | public void indexExample2 () throws IOException { |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 232 | KrillIndex ki = new KrillIndex(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 233 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 234 | // abcabcabac |
| 235 | FieldDocument fd = new FieldDocument(); |
| margaretha | 4f99558 | 2015-12-14 14:14:34 +0100 | [diff] [blame] | 236 | fd.addTV("base", "abcabcabac", "[(0-1)s:a|i:a|_0$<i>0<i>1|-:t$<i>10]" |
| 237 | + "[(1-2)s:b|i:b|_1$<i>1<i>2]" + "[(2-3)s:c|i:c|_2$<i>2<i>3]" |
| 238 | + "[(3-4)s:a|i:a|_3$<i>3<i>4|<>:x$<b>64<i>3<i>7<i>7]" |
| 239 | + "[(4-5)s:b|i:b|_4$<i>4<i>5]" + "[(5-6)s:c|i:c|_5$<i>5<i>6]" |
| 240 | + "[(6-7)s:a|i:a|_6$<i>6<i>7]" + "[(7-8)s:b|i:b|_7$<i>7<i>8]" |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 241 | + "[(8-9)s:a|i:a|_8$<i>8<i>9]" |
| 242 | + "[(9-10)s:c|i:c|_9$<i>9<i>10]"); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 243 | ki.addDoc(fd); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 244 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 245 | ki.commit(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 246 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 247 | SpanQuery sq; |
| 248 | Result kr; |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 249 | /* |
| Akron | 08f4ceb | 2016-08-03 23:53:32 +0200 | [diff] [blame] | 250 | sq = new SpanNextQuery( |
| 251 | new SpanTermQuery(new Term("base", "s:c")), |
| 252 | new SpanElementQuery("base", "x") |
| 253 | ); |
| 254 | |
| 255 | kr = ki.search(sq, (short) 10); |
| 256 | assertEquals("ab[cabca]bac", kr.getMatch(0).getSnippetBrackets()); |
| 257 | */ |
| 258 | /* |
| 259 | System.err.println(); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 260 | sq = new SpanNextQuery( |
| 261 | new SpanElementQuery("base", "x"), |
| 262 | new SpanTermQuery(new Term("base", "s:b")) |
| 263 | ); |
| 264 | |
| 265 | kr = ki.search(sq, (short) 10); |
| 266 | assertEquals("abc[abcab}ac]", kr.getMatch(0).getSnippetBrackets()); |
| 267 | System.err.println(); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 268 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 269 | */ |
| 270 | |
| 271 | /* |
| 272 | sq = new SpanWithinQuery( |
| 273 | new SpanElementQuery("base", "x"), |
| 274 | new SpanClassQuery( |
| 275 | new SpanTermQuery(new Term("base", "s:a")) |
| 276 | ) |
| 277 | ); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 278 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 279 | // new SpanTermQuery(new Term("base", "s:a")), |
| 280 | // new SpanClassQuery( |
| 281 | // ) |
| 282 | // ); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 283 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 284 | */ |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 285 | |
| 286 | } |
| 287 | }; |