| Eliza Margaretha | 0192918 | 2014-02-19 11:48:59 +0000 | [diff] [blame] | 1 | package de.ids_mannheim.korap.index; |
| 2 | |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 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; |
| Akron | 74748c6 | 2016-06-29 00:22:43 +0200 | [diff] [blame] | 18 | import de.ids_mannheim.korap.query.QueryBuilder; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 19 | import de.ids_mannheim.korap.index.FieldDocument; |
| Nils Diewald | e4986d7 | 2015-02-27 17:35:00 +0000 | [diff] [blame] | 20 | import de.ids_mannheim.korap.index.MultiTermTokenStream; |
| Akron | 74748c6 | 2016-06-29 00:22:43 +0200 | [diff] [blame] | 21 | import de.ids_mannheim.korap.response.Result; |
| 22 | import de.ids_mannheim.korap.util.QueryException; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 23 | |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 24 | import com.fasterxml.jackson.databind.ObjectMapper; |
| 25 | import com.fasterxml.jackson.databind.JsonNode; |
| 26 | |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 27 | @RunWith(JUnit4.class) |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 28 | public class TestKrillIndex { |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 29 | |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 30 | |
| 31 | /* |
| 32 | * Todo: Currently fields can only be set if they are |
| 33 | * part of the general field set. |
| 34 | * this will change soon! |
| 35 | */ |
| 36 | |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 37 | @Test |
| 38 | public void indexExample () throws IOException { |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 39 | KrillIndex ki = new KrillIndex(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 40 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 41 | assertEquals(0, ki.numberOf("base", "documents")); |
| 42 | assertEquals(0, ki.numberOf("base", "tokens")); |
| 43 | assertEquals(0, ki.numberOf("base", "sentences")); |
| 44 | assertEquals(0, ki.numberOf("base", "paragraphs")); |
| Nils Diewald | 019e397 | 2014-09-29 19:18:26 +0000 | [diff] [blame] | 45 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 46 | FieldDocument fd = new FieldDocument(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 47 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 48 | fd.addString("name", "Peter"); |
| 49 | fd.addInt("zahl1", 56); |
| 50 | fd.addInt("zahl2", "58"); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 51 | fd.addInt("zahl3", "059"); |
| 52 | fd.addInt("UID", 1); |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 53 | fd.addText("teaser", "Das ist der Name der Rose"); |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 54 | fd.addTV("base", "ich bau", "[(0-3)s:ich|l:ich|p:PPER|-:sentences$<i>2]" |
| 55 | + "[(4-7)s:bau|l:bauen|p:VVFIN]"); |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 56 | ki.addDoc(fd); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 57 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 58 | fd = new FieldDocument(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 59 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 60 | fd.addString("name", "Hans"); |
| 61 | fd.addInt("zahl1", 14); |
| 62 | fd.addText("teaser", "Das Sein"); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 63 | fd.addInt("UID", 2); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 64 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 65 | MultiTermTokenStream mtts = fd.newMultiTermTokenStream(); |
| 66 | mtts.addMultiTermToken("s:wir#0-3", "l:wir", "p:PPER"); |
| 67 | mtts.addMultiTermToken("s:sind#4-8", "l:sein", "p:VVFIN"); |
| 68 | mtts.addMeta("sentences", (int) 5); |
| 69 | fd.addTV("base", "wir sind", mtts); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 70 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 71 | ki.addDoc(fd); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 72 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 73 | /* Save documents */ |
| 74 | ki.commit(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 75 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 76 | assertEquals(2, ki.numberOf("base", "documents")); |
| 77 | assertEquals(7, ki.numberOf("base", "sentences")); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 78 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 79 | fd = new FieldDocument(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 80 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 81 | fd.addString("name", "Frank"); |
| 82 | fd.addInt("zahl1", 59); |
| 83 | fd.addInt("zahl2", 65); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 84 | fd.addInt("UID", 3); |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 85 | fd.addText("teaser", "Noch ein Versuch"); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 86 | fd.addTV("base", "ich bau", "[(0-3)s:der|l:der|p:DET|-:sentences$<i>3]" |
| 87 | + "[(4-8)s:baum|l:baum|p:NN]"); |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 88 | ki.addDoc(fd); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 89 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 90 | /* Save documents */ |
| 91 | ki.commit(); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 92 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 93 | assertEquals(3, ki.numberOf("base", "documents")); |
| 94 | assertEquals(10, ki.numberOf("base", "sentences")); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 95 | |
| Nils Diewald | 0339d46 | 2015-02-26 14:53:56 +0000 | [diff] [blame] | 96 | // KrillQuery kq = new KrillQuery("text"); |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 97 | // ki.search(); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 98 | |
| 99 | ki.getDoc("1"); |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 100 | }; |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 101 | |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 102 | |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 103 | @Test |
| 104 | public void indexAlteration () throws IOException { |
| Nils Diewald | a14ecd6 | 2015-02-26 21:00:20 +0000 | [diff] [blame] | 105 | KrillIndex ki = new KrillIndex(); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 106 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 107 | assertEquals(0, ki.numberOf("base", "documents")); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 108 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 109 | FieldDocument fd = new FieldDocument(); |
| 110 | fd.addString("name", "Peter"); |
| 111 | ki.addDoc(fd); |
| Nils Diewald | bb33da2 | 2015-03-04 16:24:25 +0000 | [diff] [blame] | 112 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 113 | assertEquals(0, ki.numberOf("base", "documents")); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 114 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 115 | fd = new FieldDocument(); |
| 116 | fd.addString("name", "Michael"); |
| 117 | ki.addDoc(fd); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 118 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 119 | assertEquals(0, ki.numberOf("base", "documents")); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 120 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 121 | ki.commit(); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 122 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 123 | assertEquals(2, ki.numberOf("base", "documents")); |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 124 | |
| Nils Diewald | 5c37570 | 2015-02-09 20:58:24 +0000 | [diff] [blame] | 125 | // hasDeletions, hasPendingMerges |
| Nils Diewald | c82379b | 2014-10-02 14:58:18 +0000 | [diff] [blame] | 126 | }; |
| Akron | 75ee2b8 | 2016-06-20 21:20:34 +0200 | [diff] [blame] | 127 | |
| Akron | 08f4ceb | 2016-08-03 23:53:32 +0200 | [diff] [blame] | 128 | |
| Akron | 74748c6 | 2016-06-29 00:22:43 +0200 | [diff] [blame] | 129 | /* |
| 130 | * This test demonstrates the behaviour |
| 131 | */ |
| 132 | @Test |
| 133 | public void indexUnicode () throws IOException, QueryException { |
| 134 | KrillIndex ki = new KrillIndex(); |
| 135 | |
| 136 | FieldDocument fd = new FieldDocument(); |
| 137 | fd.addString("name", "Peter"); |
| 138 | |
| 139 | // These values are canonically equivalent |
| 140 | // But indexed as byte sequences |
| Eliza Margaretha | 6f98920 | 2016-10-14 21:48:29 +0200 | [diff] [blame] | 141 | fd.addTV("base", |
| 142 | new String("ju" + "\u006E" + "\u0303" + "o") + " " |
| 143 | + new String("ju" + "\u00F1" + "o"), |
| 144 | "[(0-5)s:ju" + "\u006E" + "\u0303" + "o|_0$<i>0<i>5|-:t$<i>2]" |
| 145 | + "[(6-10)s:ju" + "\u00F1" + "o|_1$<i>6<i>10]"); |
| Akron | 74748c6 | 2016-06-29 00:22:43 +0200 | [diff] [blame] | 146 | ki.addDoc(fd); |
| 147 | ki.commit(); |
| 148 | |
| 149 | assertEquals(1, ki.numberOf("base", "documents")); |
| 150 | |
| 151 | QueryBuilder kq = new QueryBuilder("base"); |
| 152 | Result kr = ki.search(kq.seg("s:ju" + "\u00F1" + "o").toQuery()); |
| 153 | assertEquals(1, kr.getTotalResults()); |
| 154 | |
| 155 | kr = ki.search(kq.seg("s:ju" + "\u006E" + "\u0303" + "o").toQuery()); |
| 156 | assertEquals(1, kr.getTotalResults()); |
| 157 | }; |
| 158 | |
| Akron | 08f4ceb | 2016-08-03 23:53:32 +0200 | [diff] [blame] | 159 | |
| Akron | 75ee2b8 | 2016-06-20 21:20:34 +0200 | [diff] [blame] | 160 | @Test |
| 161 | public void indexFieldInfo () throws IOException { |
| 162 | KrillIndex ki = new KrillIndex(); |
| 163 | |
| 164 | FieldDocument fd = new FieldDocument(); |
| 165 | fd.setTitle("Peter"); |
| 166 | fd.setUID(22); |
| 167 | ki.addDoc(fd); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 168 | |
| 169 | fd = new FieldDocument(); |
| 170 | fd.setTitle("Akron"); |
| 171 | fd.setUID("05678"); |
| 172 | ki.addDoc(fd); |
| 173 | |
| Akron | 75ee2b8 | 2016-06-20 21:20:34 +0200 | [diff] [blame] | 174 | ki.commit(); |
| 175 | |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 176 | assertEquals(2, ki.numberOf("base", "documents")); |
| Akron | 75ee2b8 | 2016-06-20 21:20:34 +0200 | [diff] [blame] | 177 | |
| 178 | assertEquals("Peter", ki.getDoc("22").getTitle()); |
| 179 | assertEquals(22, ki.getDoc("22").getUID()); |
| Akron | 8798be8 | 2016-06-23 23:10:25 +0200 | [diff] [blame] | 180 | |
| 181 | assertEquals("Akron", ki.getDoc("5678").getTitle()); |
| 182 | assertEquals(5678, ki.getDoc("5678").getUID()); |
| 183 | |
| 184 | assertEquals("Akron", ki.getDoc("05678").getTitle()); |
| 185 | assertEquals(5678, ki.getDoc("05678").getUID()); |
| Akron | 75ee2b8 | 2016-06-20 21:20:34 +0200 | [diff] [blame] | 186 | }; |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 187 | |
| 188 | |
| Akron | 70ce0c0 | 2018-05-25 23:44:26 +0200 | [diff] [blame] | 189 | @Test |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 190 | public void indexRetrieveFieldInfo () throws IOException { |
| 191 | KrillIndex ki = new KrillIndex(); |
| 192 | |
| 193 | FieldDocument fd = new FieldDocument(); |
| 194 | |
| 195 | fd.addString("name", "Peter"); |
| 196 | fd.addString("textSigle", "a/b/c"); |
| 197 | fd.addInt("zahl1", 56); |
| 198 | fd.addStored("ref", "My reference"); |
| 199 | |
| 200 | fd.addKeyword("keyword", "baum"); |
| 201 | fd.addKeyword("keyword", "wald"); |
| 202 | |
| 203 | fd.addText("title", "Der Name der Rose"); |
| 204 | |
| 205 | ki.addDoc(fd); |
| 206 | |
| 207 | /* Save documents */ |
| 208 | ki.commit(); |
| 209 | |
| 210 | JsonNode res = ki.getFields("a/b/c").toJsonNode(); |
| 211 | |
| 212 | // TODO: Check if the sorting is always identical! |
| 213 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 214 | Iterator fieldIter = res.at("/document/fields").elements(); |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 215 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 216 | int checkC = 0; |
| 217 | while (fieldIter.hasNext()) { |
| 218 | JsonNode field = (JsonNode) fieldIter.next(); |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 219 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 220 | String key = field.at("/key").asText(); |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 221 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 222 | switch (key) { |
| 223 | case "ref": |
| 224 | assertEquals("type:store", field.at("/type").asText()); |
| 225 | assertEquals("koral:field", field.at("/@type").asText()); |
| 226 | assertEquals("My reference", field.at("/value").asText()); |
| 227 | checkC++; |
| 228 | break; |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 229 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 230 | case "title": |
| 231 | assertEquals("type:text", field.at("/type").asText()); |
| 232 | assertEquals("koral:field", field.at("/@type").asText()); |
| 233 | assertEquals("Der Name der Rose", field.at("/value").asText()); |
| 234 | checkC++; |
| 235 | break; |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 236 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 237 | case "textSigle": |
| 238 | assertEquals("type:string", field.at("/type").asText()); |
| 239 | assertEquals("koral:field", field.at("/@type").asText()); |
| 240 | assertEquals("a/b/c", field.at("/value").asText()); |
| 241 | checkC++; |
| 242 | break; |
| 243 | |
| 244 | case "keyword": |
| Akron | 04f0095 | 2018-03-06 18:56:54 +0100 | [diff] [blame] | 245 | assertEquals("type:keywords", field.at("/type").asText()); |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 246 | assertEquals("koral:field", field.at("/@type").asText()); |
| 247 | assertEquals("baum", field.at("/value/0").asText()); |
| 248 | assertEquals("wald", field.at("/value/1").asText()); |
| 249 | checkC++; |
| 250 | break; |
| 251 | |
| 252 | case "zahl1": |
| 253 | assertEquals("type:number", field.at("/type").asText()); |
| 254 | assertEquals("koral:field", field.at("/@type").asText()); |
| 255 | assertEquals(56, field.at("/value").asInt()); |
| 256 | checkC++; |
| 257 | break; |
| 258 | |
| 259 | case "name": |
| 260 | assertEquals("type:string", field.at("/type").asText()); |
| 261 | assertEquals("koral:field", field.at("/@type").asText()); |
| 262 | assertEquals("Peter", field.at("/value").asText()); |
| 263 | checkC++; |
| 264 | break; |
| 265 | }; |
| 266 | }; |
| 267 | |
| 268 | assertEquals(6, checkC); |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 269 | |
| Akron | 4497aba | 2018-02-08 19:03:09 +0100 | [diff] [blame] | 270 | |
| 271 | // Test with real document |
| 272 | ki.addDoc(getClass().getResourceAsStream("/wiki/wdd17-982-72848.json.gz"),true); |
| 273 | |
| 274 | /* Save documents */ |
| 275 | ki.commit(); |
| 276 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 277 | res = ki.getFields("wdd17/982/72841").toJsonNode(); |
| Akron | 4497aba | 2018-02-08 19:03:09 +0100 | [diff] [blame] | 278 | assertEquals("Document not found", res.at("/errors/0/1").asText()); |
| 279 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 280 | res = ki.getFields("WDD17/982/72848").toJsonNode(); |
| Akron | 4497aba | 2018-02-08 19:03:09 +0100 | [diff] [blame] | 281 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 282 | fieldIter = res.at("/document/fields").elements(); |
| Akron | 4497aba | 2018-02-08 19:03:09 +0100 | [diff] [blame] | 283 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 284 | checkC = 0; |
| 285 | while (fieldIter.hasNext()) { |
| 286 | JsonNode field = (JsonNode) fieldIter.next(); |
| Akron | 4497aba | 2018-02-08 19:03:09 +0100 | [diff] [blame] | 287 | |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 288 | String key = field.at("/key").asText(); |
| 289 | |
| 290 | switch (key) { |
| 291 | case "pubDate": |
| 292 | |
| Akron | 0c8a5c5 | 2018-03-07 20:00:36 +0100 | [diff] [blame] | 293 | assertEquals("type:date", field.at("/type").asText()); |
| 294 | assertEquals("2017-07-01", field.at("/value").asText()); |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 295 | break; |
| 296 | |
| 297 | case "textSigle": |
| 298 | |
| 299 | assertEquals("type:string", field.at("/type").asText()); |
| 300 | assertEquals("WDD17/982/72848", field.at("/value").asText()); |
| 301 | break; |
| 302 | |
| 303 | case "foundries": |
| Akron | 04f0095 | 2018-03-06 18:56:54 +0100 | [diff] [blame] | 304 | assertEquals("type:keywords", field.at("/type").asText()); |
| 305 | assertEquals("dereko", field.at("/value/0").asText()); |
| 306 | assertEquals("dereko/structure", field.at("/value/1").asText()); |
| 307 | assertEquals("dereko/structure/base-sentences-paragraphs-pagebreaks", field.at("/value/2").asText()); |
| Akron | 7cba5de | 2018-02-09 18:49:34 +0100 | [diff] [blame] | 308 | break; |
| 309 | }; |
| 310 | }; |
| Akron | c74dee0 | 2018-02-07 18:48:30 +0100 | [diff] [blame] | 311 | }; |
| Nils Diewald | f399a67 | 2013-11-18 17:55:22 +0000 | [diff] [blame] | 312 | }; |