blob: 2771a06d93c9e93848f9482203109baad558891b [file] [log] [blame]
Michael Hanlcf9c6ea2016-02-06 15:04:13 +01001import com.fasterxml.jackson.databind.JsonNode;
2import de.ids_mannheim.korap.config.BeanConfiguration;
3import de.ids_mannheim.korap.exceptions.KustvaktException;
4import de.ids_mannheim.korap.handlers.DocumentDao;
5import de.ids_mannheim.korap.resource.rewrite.DocMatchRewrite;
6import de.ids_mannheim.korap.resource.rewrite.RewriteHandler;
7import de.ids_mannheim.korap.resources.Document;
8import de.ids_mannheim.korap.utils.JsonUtils;
9import net.sf.ehcache.CacheManager;
10import org.junit.*;
11
12/**
13 * @author hanl
14 * @date 12/11/2015
15 */
16//fixme: tests only work with singleconnection data sources
17public class PostRewriteTest {
18
19 @BeforeClass
20 public static void setup() {
21 BeanConfiguration.loadClasspathContext("default-config.xml");
22 }
23
24 @AfterClass
25 public static void close() {
26 BeanConfiguration.closeApplication();
27 }
28
29 // otherwise cache will maintain values not relevant for other tests
30 @Before
31 public void before() {
32 CacheManager.getInstance().getCache("documents").removeAll();
33 }
34
35 @Test
36 public void testPostRewriteNothingToDo() {
37 RewriteHandler ha = new RewriteHandler(null);
38 Assert.assertEquals("Handler could not be added to rewriter instance!",
39 true, ha.add(DocMatchRewrite.class));
40
41 DocumentDao dao = new DocumentDao(
42 BeanConfiguration.getBeans().getPersistenceClient());
43 try {
44 Document d = dao.findbyId("BRZ13_APR.00014", null);
45 Assert.assertNull(d);
46 }catch (KustvaktException e) {
47 e.printStackTrace();
48 }
49
50 String v = ha.postProcess(RESULT, null);
51 Assert.assertEquals("results do not match", JsonUtils.readTree(RESULT),
52 JsonUtils.readTree(v));
53 }
54
55 @Test
56 public void testPostRewriteRemoveDoc() {
57 DocumentDao dao = new DocumentDao(
58 BeanConfiguration.getBeans().getPersistenceClient());
59
60 Document doc = new Document("BRZ13_APR.00014");
61 doc.setDisabled(true);
62 try {
63 dao.storeResource(doc, null);
64 }catch (KustvaktException e) {
65 e.printStackTrace();
66 return;
67 }
68
69 RewriteHandler ha = new RewriteHandler(null);
70 Assert.assertEquals("Handler could not be added to rewriter instance!",
71 true, ha.add(DocMatchRewrite.class));
72
73 String v = ha.postProcess(RESULT, null);
74
75 JsonNode node = JsonUtils.readTree(v);
76
77 Assert.assertNotEquals("Wrong DocID", "BRZ13_APR.00014",
78 node.at("/matches/1/docID"));
79
80 try {
81 dao.deleteResource(doc.getPersistentID(), null);
82 Document d = dao.findbyId(doc.getPersistentID(), null);
83 if (d != null)
84 System.out.println("IS SUPPOSED TO BE NULL! " + d);
85 }catch (KustvaktException e) {
86 e.printStackTrace();
87 return;
88 }
89
90 }
91
92 @Test
93 public void testPath() {
94 String v = "{\n" + " \"meta\": {\n" + " \"count\": 25,\n"
95 + " \"startIndex\": 0,\n"
96 + " \"timeout\": 120000,\n" + " \"context\": {\n"
97 + " \"left\": [\n" + " \"token\",\n"
98 + " 6\n" + " ],\n"
99 + " \"right\": [\n" + " \"token\",\n"
100 + " 6\n" + " ]\n" + " }}}";
101 JsonNode n = JsonUtils.readTree(v);
102
103 }
104
105 private static final String RESULT =
106 "{\n" + " \"meta\": {\n" + " \"count\": 25,\n"
107 + " \"startIndex\": 0,\n"
108 + " \"timeout\": 120000,\n"
109 + " \"context\": {\n" + " \"left\": [\n"
110 + " \"token\",\n" + " 6\n"
111 + " ],\n" + " \"right\": [\n"
112 + " \"token\",\n" + " 6\n"
113 + " ]\n" + " },\n"
114 + " \"fields\": [\n" + " \"textSigle\",\n"
115 + " \"author\",\n"
116 + " \"docSigle\",\n" + " \"title\",\n"
117 + " \"pubDate\",\n" + " \"UID\",\n"
118 + " \"corpusID\",\n"
119 + " \"textClass\",\n"
120 + " \"subTitle\",\n"
121 + " \"layerInfos\",\n" + " \"ID\",\n"
122 + " \"pubPlace\",\n"
123 + " \"corpusSigle\"\n" + " ],\n"
124 + " \"version\": \"unknown\",\n"
125 + " \"benchmark\": \"0.204314141 s\",\n"
126 + " \"totalResults\": 1755,\n"
127 + " \"serialQuery\": \"tokens:tt/l:Wort\",\n"
128 + " \"itemsPerPage\": 25\n" + " },\n"
129 + " \"query\": {\n"
130 + " \"@type\": \"koral:token\",\n"
131 + " \"wrap\": {\n"
132 + " \"@type\": \"koral:term\",\n"
133 + " \"key\": \"Wort\",\n"
134 + " \"layer\": \"lemma\",\n"
135 + " \"match\": \"match:eq\",\n"
136 + " \"foundry\": \"tt\",\n"
137 + " \"rewrites\": [\n" + " {\n"
138 + " \"@type\": \"koral:rewrite\",\n"
139 + " \"src\": \"Kustvakt\",\n"
140 + " \"operation\": \"operation:injection\"\n"
141 + " }\n" + " ]\n" + " }\n"
142 + " },\n" + " \"matches\": [\n" + " {\n"
143 + " \"field\": \"tokens\",\n"
144 + " \"textClass\": \"staat-gesellschaft familie-geschlecht\",\n"
145 + " \"title\": \"Sexueller Missbrauch –„Das schreiende Kind steckt noch tief in mir“\",\n"
146 + " \"author\": \"\",\n"
147 + " \"startMore\": true,\n"
148 + " \"endMore\": true,\n"
149 + " \"corpusID\": \"BRZ13\",\n"
150 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>in ihrer Stimme schwingt bei diesem </span><mark>Wort</mark><span class=\\\"context-right\\\"> Sarkasmus mit. Bis man einen passenden<span class=\\\"more\\\"></span></span>\",\n"
151 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00001-p454-455\",\n"
152 + " \"docID\": \"BRZ13_APR.00001\",\n"
153 + " \"UID\": 0,\n"
154 + " \"pubDate\": \"2013-04-02\"\n"
155 + " },\n" + " {\n"
156 + " \"field\": \"tokens\",\n"
157 + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
158 + " \"title\": \"Leben dick und prall\",\n"
159 + " \"author\": \"\",\n"
160 + " \"startMore\": true,\n"
161 + " \"endMore\": true,\n"
162 + " \"corpusID\": \"BRZ13\",\n"
163 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>der DLRG, ausgelassene Partys und markige </span><mark>Worte</mark><span class=\\\"context-right\\\"> des Dompredigers: „Ostern ist kein goethischer<span class=\\\"more\\\"></span></span>\",\n"
164 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00014-p96-97\",\n"
165 + " \"docID\": \"BRZ13_APR.00014\",\n"
166 + " \"UID\": 0,\n"
167 + " \"pubDate\": \"2013-04-02\"\n"
168 + " },\n" + " {\n"
169 + " \"field\": \"tokens\",\n"
170 + " \"textClass\": \"staat-gesellschaft biographien-interviews kultur musik\",\n"
171 + " \"title\": \"So wird es gemacht:\",\n"
172 + " \"author\": \"\",\n"
173 + " \"startMore\": true,\n"
174 + " \"endMore\": true,\n"
175 + " \"corpusID\": \"BRZ13\",\n"
176 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>derfehlende Buchstabe.Gelingt es dir,das </span><mark>Wort</mark><span class=\\\"context-right\\\"> vervollständigen? Tipp: Probiere auch mal rückwärts<span class=\\\"more\\\"></span></span>\",\n"
177 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00055-p19-20\",\n"
178 + " \"docID\": \"BRZ13_APR.00055\",\n"
179 + " \"UID\": 0,\n"
180 + " \"pubDate\": \"2013-04-02\"\n"
181 + " },\n" + " {\n"
182 + " \"field\": \"tokens\",\n"
183 + " \"textClass\": \"politik ausland\",\n"
184 + " \"title\": \"Südkorea droht mit Angriffen – USA rüsten auf\",\n"
185 + " \"author\": \"\",\n"
186 + " \"startMore\": true,\n"
187 + " \"endMore\": true,\n"
188 + " \"corpusID\": \"BRZ13\",\n"
189 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>der Stunde. „Aus einem Krieg der </span><mark>Worte</mark><span class=\\\"context-right\\\"> darf kein echter Krieg werden“, sagte<span class=\\\"more\\\"></span></span>\",\n"
190 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00076-p238-239\",\n"
191 + " \"docID\": \"BRZ13_APR.00076\",\n"
192 + " \"UID\": 0,\n"
193 + " \"pubDate\": \"2013-04-02\"\n"
194 + " },\n" + " {\n"
195 + " \"field\": \"tokens\",\n"
196 + " \"textClass\": \"politik inland freizeit-unterhaltung reisen\",\n"
197 + " \"title\": \"Dauercamper kämpfen für ihren Platz\",\n"
198 + " \"author\": \"\",\n"
199 + " \"startMore\": true,\n"
200 + " \"endMore\": true,\n"
201 + " \"corpusID\": \"BRZ13\",\n"
202 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>„Initiative Campingplatz Räbke“. „Als ich das </span><mark>Wort</mark><span class=\\\"context-right\\\"> Schließung gelesen habe, war ich richtig<span class=\\\"more\\\"></span></span>\",\n"
203 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00200-p255-256\",\n"
204 + " \"docID\": \"BRZ13_APR.00200\",\n"
205 + " \"UID\": 0,\n"
206 + " \"pubDate\": \"2013-04-02\"\n"
207 + " },\n" + " {\n"
208 + " \"field\": \"tokens\",\n"
209 + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
210 + " \"title\": \"Neue Aktionen lockten Besucher\",\n"
211 + " \"author\": \"\",\n"
212 + " \"startMore\": true,\n"
213 + " \"endMore\": true,\n"
214 + " \"corpusID\": \"BRZ13\",\n"
215 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Jan Waldheim (CWG) unter den aufmunternden </span><mark>Worten</mark><span class=\\\"context-right\\\"> eines augenzwinkernden Axel Schnalke („Ein bisschen<span class=\\\"more\\\"></span></span>\",\n"
216 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00210-p142-143\",\n"
217 + " \"docID\": \"BRZ13_APR.00210\",\n"
218 + " \"UID\": 0,\n"
219 + " \"pubDate\": \"2013-04-02\"\n"
220 + " },\n" + " {\n"
221 + " \"field\": \"tokens\",\n"
222 + " \"textClass\": \"kultur musik\",\n"
223 + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
224 + " \"author\": \"\",\n"
225 + " \"startMore\": true,\n"
226 + " \"endMore\": true,\n"
227 + " \"corpusID\": \"BRZ13\",\n"
228 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>trotzdem nicht. Selten wurden so viele </span><mark>Worte</mark><span class=\\\"context-right\\\">, die der Autor hier lieber verschweigt<span class=\\\"more\\\"></span></span>\",\n"
229 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p166-167\",\n"
230 + " \"docID\": \"BRZ13_APR.00253\",\n"
231 + " \"UID\": 0,\n"
232 + " \"pubDate\": \"2013-04-02\"\n"
233 + " },\n" + " {\n"
234 + " \"field\": \"tokens\",\n"
235 + " \"textClass\": \"kultur musik\",\n"
236 + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
237 + " \"author\": \"\",\n"
238 + " \"startMore\": true,\n"
239 + " \"endMore\": true,\n"
240 + " \"corpusID\": \"BRZ13\",\n"
241 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>zudem nicht immer nur bei den </span><mark>Worten</mark><span class=\\\"context-right\\\"> geblieben) und dabei gleichzeitig soviel Charme<span class=\\\"more\\\"></span></span>\",\n"
242 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p191-192\",\n"
243 + " \"docID\": \"BRZ13_APR.00253\",\n"
244 + " \"UID\": 0,\n"
245 + " \"pubDate\": \"2013-04-02\"\n"
246 + " },\n" + " {\n"
247 + " \"field\": \"tokens\",\n"
248 + " \"textClass\": \"kultur musik\",\n"
249 + " \"title\": \"Travestie – Helden in Strumpfhosen\",\n"
250 + " \"author\": \"\",\n"
251 + " \"startMore\": true,\n"
252 + " \"endMore\": true,\n"
253 + " \"corpusID\": \"BRZ13\",\n"
254 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>bedeutet Travestie sich zu verkleiden, das </span><mark>Wort</mark><span class=\\\"context-right\\\"> stammt aus dem Französischen. Traditionell belegten<span class=\\\"more\\\"></span></span>\",\n"
255 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00253-p371-372\",\n"
256 + " \"docID\": \"BRZ13_APR.00253\",\n"
257 + " \"UID\": 0,\n"
258 + " \"pubDate\": \"2013-04-02\"\n"
259 + " },\n" + " {\n"
260 + " \"field\": \"tokens\",\n"
261 + " \"textClass\": \"sport fussball\",\n"
262 + " \"title\": \"VfL kommt nicht vom Fleck\",\n"
263 + " \"author\": \"\",\n"
264 + " \"startMore\": true,\n"
265 + " \"endMore\": true,\n"
266 + " \"corpusID\": \"BRZ13\",\n"
267 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>am internationalen Geschäft berechtigt. Mit anderen </span><mark>Worten</mark><span class=\\\"context-right\\\">: Die „Wölfe“ stecken im grauen Mittelmaß<span class=\\\"more\\\"></span></span>\",\n"
268 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00260-p93-94\",\n"
269 + " \"docID\": \"BRZ13_APR.00260\",\n"
270 + " \"UID\": 0,\n"
271 + " \"pubDate\": \"2013-04-02\"\n"
272 + " },\n" + " {\n"
273 + " \"field\": \"tokens\",\n"
274 + " \"textClass\": \"sport fussball\",\n"
275 + " \"title\": \"Mensch, Mayer! Super Tor\",\n"
276 + " \"author\": \"\",\n"
277 + " \"startMore\": true,\n"
278 + " \"endMore\": true,\n"
279 + " \"corpusID\": \"BRZ13\",\n"
280 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>bekommst, ist das unbezahlbar – ein Bonus.“ </span><mark>Worte</mark><span class=\\\"context-right\\\">, die dem Torschützen weiteres Selbstvertrauen geben<span class=\\\"more\\\"></span></span>\",\n"
281 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00275-p271-272\",\n"
282 + " \"docID\": \"BRZ13_APR.00275\",\n"
283 + " \"UID\": 0,\n"
284 + " \"pubDate\": \"2013-04-02\"\n"
285 + " },\n" + " {\n"
286 + " \"field\": \"tokens\",\n"
287 + " \"textClass\": \"sport fussball\",\n"
288 + " \"title\": \"Nur Gerücht? KHL-Klub will „Dshuni“\",\n"
289 + " \"author\": \"\",\n"
290 + " \"startMore\": true,\n"
291 + " \"endMore\": true,\n"
292 + " \"corpusID\": \"BRZ13\",\n"
293 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>und hakt das Thema ab.cb Kein </span><mark>Wort</mark><span class=\\\"context-right\\\"> zum Interesse aus Astana: Daniar Dshunussow.Foto<span class=\\\"more\\\"></span></span>\",\n"
294 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00277-p163-164\",\n"
295 + " \"docID\": \"BRZ13_APR.00277\",\n"
296 + " \"UID\": 0,\n"
297 + " \"pubDate\": \"2013-04-02\"\n"
298 + " },\n" + " {\n"
299 + " \"field\": \"tokens\",\n"
300 + " \"textClass\": \"staat-gesellschaft biographien-interviews\",\n"
301 + " \"title\": \"Das Leben ist nicht auf diese Erde beschränkt\",\n"
302 + " \"author\": \"\",\n"
303 + " \"startMore\": true,\n"
304 + " \"endMore\": true,\n"
305 + " \"corpusID\": \"BRZ13\",\n"
306 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>1. Korinther 1,18 denken: Denn das </span><mark>Wort</mark><span class=\\\"context-right\\\"> vom Kreuz ist eine Torheit denen<span class=\\\"more\\\"></span></span>\",\n"
307 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00520-p32-33\",\n"
308 + " \"docID\": \"BRZ13_APR.00520\",\n"
309 + " \"UID\": 0,\n"
310 + " \"pubDate\": \"2013-04-03\"\n"
311 + " },\n" + " {\n"
312 + " \"field\": \"tokens\",\n"
313 + " \"textClass\": \"sport fussball\",\n"
314 + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
315 + " \"author\": \"\",\n"
316 + " \"startMore\": true,\n"
317 + " \"endMore\": true,\n"
318 + " \"corpusID\": \"BRZ13\",\n"
319 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>für die Profis am Dienstag klare </span><mark>Worte</mark><span class=\\\"context-right\\\"> vom Führungsduo. Von Thorsten Grunow Wolfsburg<span class=\\\"more\\\"></span></span>\",\n"
320 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p17-18\",\n"
321 + " \"docID\": \"BRZ13_APR.00557\",\n"
322 + " \"UID\": 0,\n"
323 + " \"pubDate\": \"2013-04-03\"\n"
324 + " },\n" + " {\n"
325 + " \"field\": \"tokens\",\n"
326 + " \"textClass\": \"sport fussball\",\n"
327 + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
328 + " \"author\": \"\",\n"
329 + " \"startMore\": true,\n"
330 + " \"endMore\": true,\n"
331 + " \"corpusID\": \"BRZ13\",\n"
332 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Minuten setzte es am Dienstagnachmittag klare </span><mark>Worte</mark><span class=\\\"context-right\\\"> für die kickende Belegschaft, die durchaus<span class=\\\"more\\\"></span></span>\",\n"
333 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p60-61\",\n"
334 + " \"docID\": \"BRZ13_APR.00557\",\n"
335 + " \"UID\": 0,\n"
336 + " \"pubDate\": \"2013-04-03\"\n"
337 + " },\n" + " {\n"
338 + " \"field\": \"tokens\",\n"
339 + " \"textClass\": \"sport fussball\",\n"
340 + " \"title\": \"Allofs und Hecking knöpfensich die VfL-Profis vor\",\n"
341 + " \"author\": \"\",\n"
342 + " \"startMore\": true,\n"
343 + " \"endMore\": true,\n"
344 + " \"corpusID\": \"BRZ13\",\n"
345 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Manager ist überzeugt, dass die klaren </span><mark>Worte</mark><span class=\\\"context-right\\\"> auf fruchtbaren Boden gefallen sind. „Ich<span class=\\\"more\\\"></span></span>\",\n"
346 + " \"matchID\": \"match-BRZ13!BRZ13_APR.00557-p235-236\",\n"
347 + " \"docID\": \"BRZ13_APR.00557\",\n"
348 + " \"UID\": 0,\n"
349 + " \"pubDate\": \"2013-04-03\"\n"
350 + " },\n" + " {\n"
351 + " \"field\": \"tokens\",\n"
352 + " \"textClass\": \"politik inland politik ausland\",\n"
353 + " \"title\": \"Zeitungsartikelzufällig deponiert?\",\n"
354 + " \"author\": \"\",\n"
355 + " \"startMore\": true,\n"
356 + " \"endMore\": true,\n"
357 + " \"corpusID\": \"BRZ13\",\n"
358 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>erspart“, lautete die Schlagzeile – wobei das </span><mark>Wort</mark><span class=\\\"context-right\\\"> „erspart“ abgeschnitten war. Ein plumper Versuch<span class=\\\"more\\\"></span></span>\",\n"
359 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07616-p31-32\",\n"
360 + " \"docID\": \"BRZ13_JAN.07616\",\n"
361 + " \"UID\": 0,\n"
362 + " \"pubDate\": \"2013-01-21\"\n"
363 + " },\n" + " {\n"
364 + " \"field\": \"tokens\",\n"
365 + " \"textClass\": \"politik inland\",\n"
366 + " \"title\": \"„Philipp Rösler wackelt nicht“\",\n"
367 + " \"author\": \"\",\n"
368 + " \"startMore\": true,\n"
369 + " \"endMore\": true,\n"
370 + " \"corpusID\": \"BRZ13\",\n"
371 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Vizekanzler bei all dem Jubel zu </span><mark>Wort</mark><span class=\\\"context-right\\\"> kommt. „Ein großartiger Tag“, sagt er<span class=\\\"more\\\"></span></span>\",\n"
372 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07617-p177-178\",\n"
373 + " \"docID\": \"BRZ13_JAN.07617\",\n"
374 + " \"UID\": 0,\n"
375 + " \"pubDate\": \"2013-01-21\"\n"
376 + " },\n" + " {\n"
377 + " \"field\": \"tokens\",\n"
378 + " \"textClass\": \"freizeit-unterhaltung reisen\",\n"
379 + " \"title\": \"Lanz gibt den charmanten, zurückhaltenden Gastgeber\",\n"
380 + " \"author\": \"\",\n"
381 + " \"startMore\": true,\n"
382 + " \"endMore\": true,\n"
383 + " \"corpusID\": \"BRZ13\",\n"
384 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>er, als seine Assistentin ihm ins </span><mark>Wort</mark><span class=\\\"context-right\\\"> fiel. Dennoch holte das ungleiche Duo<span class=\\\"more\\\"></span></span>\",\n"
385 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07621-p261-262\",\n"
386 + " \"docID\": \"BRZ13_JAN.07621\",\n"
387 + " \"UID\": 0,\n"
388 + " \"pubDate\": \"2013-01-21\"\n"
389 + " },\n" + " {\n"
390 + " \"field\": \"tokens\",\n"
391 + " \"textClass\": \"politik inland\",\n"
392 + " \"title\": \"Mundlos denkt über Rücktritt nach\",\n"
393 + " \"author\": \"\",\n"
394 + " \"startMore\": true,\n"
395 + " \"endMore\": true,\n"
396 + " \"corpusID\": \"BRZ13\",\n"
397 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>räumte selbst ein, wie sarkastisch diese </span><mark>Worte</mark><span class=\\\"context-right\\\"> nach einer solchen Wahlnacht klingen mussten<span class=\\\"more\\\"></span></span>\",\n"
398 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07694-p192-193\",\n"
399 + " \"docID\": \"BRZ13_JAN.07694\",\n"
400 + " \"UID\": 0,\n"
401 + " \"pubDate\": \"2013-01-21\"\n"
402 + " },\n" + " {\n"
403 + " \"field\": \"tokens\",\n"
404 + " \"textClass\": \"politik inland\",\n"
405 + " \"title\": \"BraunschweigGold – Hannover Blech\",\n"
406 + " \"author\": \"\",\n"
407 + " \"startMore\": true,\n"
408 + " \"endMore\": true,\n"
409 + " \"corpusID\": \"BRZ13\",\n"
410 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>im Volksfreundhaus hört man kein schlechtes </span><mark>Wort</mark><span class=\\\"context-right\\\"> über den Kanzlerkandidaten Peer Steinbrück – und<span class=\\\"more\\\"></span></span>\",\n"
411 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07695-p169-170\",\n"
412 + " \"docID\": \"BRZ13_JAN.07695\",\n"
413 + " \"UID\": 0,\n"
414 + " \"pubDate\": \"2013-01-21\"\n"
415 + " },\n" + " {\n"
416 + " \"field\": \"tokens\",\n"
417 + " \"textClass\": \"politik inland\",\n"
418 + " \"title\": \"BraunschweigGold – Hannover Blech\",\n"
419 + " \"author\": \"\",\n"
420 + " \"startMore\": true,\n"
421 + " \"endMore\": true,\n"
422 + " \"corpusID\": \"BRZ13\",\n"
423 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>Volksfreundhaus merklich steigen. Hier hat das </span><mark>Wort</mark><span class=\\\"context-right\\\"> von der Wahlparty bei Bier, Bockwurst<span class=\\\"more\\\"></span></span>\",\n"
424 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07695-p266-267\",\n"
425 + " \"docID\": \"BRZ13_JAN.07695\",\n"
426 + " \"UID\": 0,\n"
427 + " \"pubDate\": \"2013-01-21\"\n"
428 + " },\n" + " {\n"
429 + " \"field\": \"tokens\",\n"
430 + " \"textClass\": \"staat-gesellschaft kirche\",\n"
431 + " \"title\": \"Fernsehen überträgt Gottesdienst\",\n"
432 + " \"author\": \"\",\n"
433 + " \"startMore\": true,\n"
434 + " \"endMore\": true,\n"
435 + " \"corpusID\": \"BRZ13\",\n"
436 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>schon mal von der Sendung „Das </span><mark>Wort</mark><span class=\\\"context-right\\\"> zum Sonntag“ gehört. Das sind Predigten<span class=\\\"more\\\"></span></span>\",\n"
437 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07840-p37-38\",\n"
438 + " \"docID\": \"BRZ13_JAN.07840\",\n"
439 + " \"UID\": 0,\n"
440 + " \"pubDate\": \"2013-01-21\"\n"
441 + " },\n" + " {\n"
442 + " \"field\": \"tokens\",\n"
443 + " \"textClass\": \"politik inland\",\n"
444 + " \"title\": \"Wahlkrimi im Ratssaal\",\n"
445 + " \"author\": \"\",\n"
446 + " \"startMore\": true,\n"
447 + " \"endMore\": true,\n"
448 + " \"corpusID\": \"BRZ13\",\n"
449 + " \"snippet\": \"<span class=\\\"context-left\\\"><span class=\\\"more\\\"></span>ihre Konkurrentin Glosemeyer hatte sie warme </span><mark>Worte</mark><span class=\\\"context-right\\\"> übrig. „Für den ersten Anlauf eine<span class=\\\"more\\\"></span></span>\",\n"
450 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07848-p147-148\",\n"
451 + " \"docID\": \"BRZ13_JAN.07848\",\n"
452 + " \"UID\": 0,\n"
453 + " \"pubDate\": \"2013-01-21\"\n"
454 + " },\n" + " {\n"
455 + " \"field\": \"tokens\",\n"
456 + " \"textClass\": \"politik inland\",\n"
457 + " \"title\": \"Warme Worte nach eiskaltem Wahlkampf\",\n"
458 + " \"author\": \"\",\n"
459 + " \"startMore\": true,\n"
460 + " \"endMore\": true,\n"
461 + " \"corpusID\": \"BRZ13\",\n"
462 + " \"snippet\": \"<span class=\\\"context-left\\\">Warme </span><mark>Worte</mark><span class=\\\"context-right\\\"> nach eiskaltem Wahlkampf Die SPD feierte<span class=\\\"more\\\"></span></span>\",\n"
463 + " \"matchID\": \"match-BRZ13!BRZ13_JAN.07850-p1-2\",\n"
464 + " \"docID\": \"BRZ13_JAN.07850\",\n"
465 + " \"UID\": 0,\n"
466 + " \"pubDate\": \"2013-01-21\"\n"
467 + " }\n" + " ]\n" + "}";
468
469}