blob: edede59944c06ed40d847becf5c6efcb2b868537 [file] [log] [blame]
Nils Diewalde3645702014-11-07 21:15:20 +00001package de.ids_mannheim.korap.search;
2
3import java.util.*;
4import java.io.*;
5
6import static de.ids_mannheim.korap.TestSimple.*;
7
Nils Diewaldbbd39a52015-02-23 19:56:57 +00008import de.ids_mannheim.korap.Krill;
Nils Diewald2d5f8102015-02-26 21:07:54 +00009import de.ids_mannheim.korap.KrillCollection;
Nils Diewald0339d462015-02-26 14:53:56 +000010import de.ids_mannheim.korap.KrillQuery;
Nils Diewalda14ecd62015-02-26 21:00:20 +000011import de.ids_mannheim.korap.KrillIndex;
Nils Diewalde3645702014-11-07 21:15:20 +000012import de.ids_mannheim.korap.index.FieldDocument;
Nils Diewald884dbcf2015-02-27 17:02:28 +000013import de.ids_mannheim.korap.response.Result;
Nils Diewalde3645702014-11-07 21:15:20 +000014import java.nio.file.Files;
15import java.nio.file.FileSystem;
16import java.nio.file.Path;
17import java.nio.charset.StandardCharsets;
18import java.nio.ByteBuffer;
19
Akron484c3c12015-07-07 20:25:44 +020020import org.apache.commons.lang.StringUtils;
21import org.apache.lucene.analysis.Analyzer;
22import org.apache.lucene.analysis.TokenStream;
23import org.apache.lucene.analysis.tokenattributes.CharTermAttribute;
24
Nils Diewalde3645702014-11-07 21:15:20 +000025import com.fasterxml.jackson.databind.ObjectMapper;
26import com.fasterxml.jackson.databind.JsonNode;
27
28import static org.junit.Assert.*;
29import org.junit.Test;
30import org.junit.Ignore;
31import org.junit.runner.RunWith;
32import org.junit.runners.JUnit4;
33
34@RunWith(JUnit4.class)
35public class TestMetaFields {
Akron640458c2015-06-25 12:36:15 +020036
Nils Diewalde3645702014-11-07 21:15:20 +000037 @Test
38 public void searchMetaFields () throws IOException {
39
Nils Diewald3aa9e692015-02-20 22:20:11 +000040 // Construct index
Nils Diewalda14ecd62015-02-26 21:00:20 +000041 KrillIndex ki = new KrillIndex();
Nils Diewald3aa9e692015-02-20 22:20:11 +000042 // Indexing test files
Nils Diewaldbb33da22015-03-04 16:24:25 +000043 for (String i : new String[] { "00001", "00002" }) {
Eliza Margaretha6f989202016-10-14 21:48:29 +020044 ki.addDoc(getClass().getResourceAsStream("/wiki/" + i + ".json.gz"),
Nils Diewaldbb33da22015-03-04 16:24:25 +000045 true);
Nils Diewald3aa9e692015-02-20 22:20:11 +000046 };
47 ki.commit();
Nils Diewalde3645702014-11-07 21:15:20 +000048
Eliza Margaretha6f989202016-10-14 21:48:29 +020049 String jsonString = getJsonString(getClass()
50 .getResource("/queries/metas/fields.jsonld").getFile());
Nils Diewaldbb33da22015-03-04 16:24:25 +000051
Nils Diewaldbbd39a52015-02-23 19:56:57 +000052 Krill ks = new Krill(jsonString);
Nils Diewalde3645702014-11-07 21:15:20 +000053
Nils Diewald884dbcf2015-02-27 17:02:28 +000054 Result kr = ks.apply(ki);
Nils Diewald3aa9e692015-02-20 22:20:11 +000055 assertEquals((long) 17, kr.getTotalResults());
56 assertEquals(0, kr.getStartIndex());
57 assertEquals(9, kr.getItemsPerPage());
Nils Diewaldbb33da22015-03-04 16:24:25 +000058
Nils Diewald3aa9e692015-02-20 22:20:11 +000059 ObjectMapper mapper = new ObjectMapper();
60 JsonNode res = mapper.readTree(kr.toJsonString());
Akronb1166442015-06-27 00:34:19 +020061
Akronb1166442015-06-27 00:34:19 +020062 // mirror fields
63 assertEquals(9, res.at("/meta/count").asInt());
64
65 if (res.at("/meta/fields/0").asText().equals("UID")) {
66 assertEquals("corpusID", res.at("/meta/fields/1").asText());
67 }
68 else {
69 assertEquals("corpusID", res.at("/meta/fields/0").asText());
70 assertEquals("UID", res.at("/meta/fields/1").asText());
71 };
72
Nils Diewald3aa9e692015-02-20 22:20:11 +000073 assertEquals(0, res.at("/matches/0/UID").asInt());
74 assertEquals("WPD", res.at("/matches/0/corpusID").asText());
Akron12f1f5b2015-06-24 15:56:52 +020075 assertTrue(res.at("/matches/0/docID").isMissingNode());
76 assertTrue(res.at("/matches/0/textSigle").isMissingNode());
77 assertTrue(res.at("/matches/0/ID").isMissingNode());
78 assertTrue(res.at("/matches/0/author").isMissingNode());
79 assertTrue(res.at("/matches/0/title").isMissingNode());
80 assertTrue(res.at("/matches/0/subTitle").isMissingNode());
81 assertTrue(res.at("/matches/0/textClass").isMissingNode());
82 assertTrue(res.at("/matches/0/pubPlace").isMissingNode());
83 assertTrue(res.at("/matches/0/pubDate").isMissingNode());
84 assertTrue(res.at("/matches/0/foundries").isMissingNode());
85 assertTrue(res.at("/matches/0/layerInfos").isMissingNode());
86 assertTrue(res.at("/matches/0/tokenization").isMissingNode());
Nils Diewalde3645702014-11-07 21:15:20 +000087
Eliza Margaretha6f989202016-10-14 21:48:29 +020088 jsonString = getJsonString(getClass()
89 .getResource("/queries/metas/fields_2.jsonld").getFile());
Nils Diewaldbbd39a52015-02-23 19:56:57 +000090 ks = new Krill(jsonString);
Nils Diewald3aa9e692015-02-20 22:20:11 +000091 kr = ks.apply(ki);
92 assertEquals((long) 17, kr.getTotalResults());
93 assertEquals(0, kr.getStartIndex());
94 assertEquals(2, kr.getItemsPerPage());
Nils Diewaldbb33da22015-03-04 16:24:25 +000095
Nils Diewald3aa9e692015-02-20 22:20:11 +000096 mapper = new ObjectMapper();
97 res = mapper.readTree(kr.toJsonString());
98 assertEquals(0, res.at("/matches/0/UID").asInt());
Akron12f1f5b2015-06-24 15:56:52 +020099 assertTrue(res.at("/matches/0/corpusID").isMissingNode());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200100 assertEquals("Ruru,Jens.Ol,Aglarech",
101 res.at("/matches/0/author").asText());
Nils Diewald3aa9e692015-02-20 22:20:11 +0000102 assertEquals("A", res.at("/matches/0/title").asText());
103 assertEquals("WPD_AAA.00001", res.at("/matches/0/docID").asText());
Akron3e0403f2015-06-24 20:59:13 +0200104 assertTrue(res.at("/matches/0/textSigle").isMissingNode());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200105 assertEquals("match-WPD_AAA.00001-p6-7",
106 res.at("/matches/0/matchID").asText());
Akron48937e92015-06-26 01:49:02 +0200107 // assertEquals("p6-7", res.at("/matches/0/matchID").asText());
Akron32b95192019-01-11 13:58:55 +0100108 assertTrue(res.at("/matches/0/subTitle").isMissingNode());
Nils Diewald3aa9e692015-02-20 22:20:11 +0000109 assertEquals("", res.at("/matches/0/subTitle").asText());
110 assertEquals("", res.at("/matches/0/textClass").asText());
111 assertEquals("", res.at("/matches/0/pubPlace").asText());
112 assertEquals("", res.at("/matches/0/pubDate").asText());
113 assertEquals("", res.at("/matches/0/foundries").asText());
114 assertEquals("", res.at("/matches/0/layerInfo").asText());
115 assertEquals("", res.at("/matches/0/tokenization").asText());
Nils Diewalde3645702014-11-07 21:15:20 +0000116 };
Akron3e0403f2015-06-24 20:59:13 +0200117
Akron640458c2015-06-25 12:36:15 +0200118
Akron3e0403f2015-06-24 20:59:13 +0200119 @Test
120 public void searchMetaFieldsNew () throws IOException {
121
122 // Construct index
123 KrillIndex ki = new KrillIndex();
Akron640458c2015-06-25 12:36:15 +0200124 ki.addDoc(getClass().getResourceAsStream("/goe/AGX-00002.json"), false);
Akron3e0403f2015-06-24 20:59:13 +0200125 ki.commit();
126
Eliza Margaretha6f989202016-10-14 21:48:29 +0200127 String jsonString = getJsonString(getClass()
128 .getResource("/queries/metas/fields_no.jsonld").getFile());
Akron3e0403f2015-06-24 20:59:13 +0200129
130 Krill ks = new Krill(jsonString);
131 Result kr = ks.apply(ki);
132 ObjectMapper mapper = new ObjectMapper();
133 JsonNode res = mapper.readTree(kr.toJsonString());
134 assertEquals(0, res.at("/matches/0/UID").asInt());
135 assertEquals("GOE_AGX.00002", res.at("/matches/0/textSigle").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200136 assertEquals("Maximen und Reflexionen",
137 res.at("/matches/0/title").asText());
Akron3e0403f2015-06-24 20:59:13 +0200138 assertEquals("1982", res.at("/matches/0/pubDate").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200139 assertEquals("Goethe, Johann Wolfgang von",
140 res.at("/matches/0/author").asText());
Akron3e0403f2015-06-24 20:59:13 +0200141 assertEquals("GOE_AGX", res.at("/matches/0/docSigle").asText());
142 assertEquals("GOE", res.at("/matches/0/corpusSigle").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200143 assertEquals("Religion und Christentum",
144 res.at("/matches/0/subTitle").asText());
Akron3e0403f2015-06-24 20:59:13 +0200145 assertEquals("München", res.at("/matches/0/pubPlace").asText());
Akron640458c2015-06-25 12:36:15 +0200146 assertEquals(
147 "base/s=spans cnx/c=spans cnx/l=tokens cnx/m=tokens cnx/p=tokens cnx/s=spans cnx/syn=tokens corenlp/c=spans corenlp/ne=tokens corenlp/p=tokens corenlp/s=spans glemm/l=tokens mate/l=tokens mate/m=tokens mate/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens tt/s=spans xip/c=spans xip/l=tokens xip/p=tokens xip/s=spans",
148 res.at("/matches/0/layerInfos").asText());
Akron3e0403f2015-06-24 20:59:13 +0200149 assertTrue(res.at("/matches/0/textType").isMissingNode());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200150 assertEquals("match-GOE_AGX.00002-p7-8",
151 res.at("/matches/0/matchID").asText());
Akron48937e92015-06-26 01:49:02 +0200152
Akron3e0403f2015-06-24 20:59:13 +0200153
154 // All fields
Eliza Margaretha6f989202016-10-14 21:48:29 +0200155 jsonString = getJsonString(getClass()
156 .getResource("/queries/metas/fields_all.jsonld").getFile());
Akron3e0403f2015-06-24 20:59:13 +0200157
158 ks = new Krill(jsonString);
159 kr = ks.apply(ki);
160 mapper = new ObjectMapper();
161 res = mapper.readTree(kr.toJsonString());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200162 assertEquals("Verlag C. H. Beck",
163 res.at("/matches/0/publisher").asText());
Akron3e0403f2015-06-24 20:59:13 +0200164 assertEquals("Aphorismus", res.at("/matches/0/textType").asText());
165 assertEquals("Aphorismen", res.at("/matches/0/textTypeRef").asText());
Akron640458c2015-06-25 12:36:15 +0200166 assertEquals(
167 "Goethe, Johann Wolfgang von: Maximen und Reflexionen. Religion und Christentum, [Aphorismen], (Erstveröffentlichung: Stuttgart ; Tübingen, 1827-1842), In: Goethe, Johann Wolfgang von: Goethes Werke, Bd. 12, Schriften zur Kunst. Schriften zur Literatur. Maximen und Reflexionen, Hrsg.: Trunz, Erich. München: Verlag C. H. Beck, 1982, S. 372-377",
168 res.at("/matches/0/reference").asText());
Akron3e0403f2015-06-24 20:59:13 +0200169 assertEquals("de", res.at("/matches/0/language").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200170 assertEquals("opennlp#tokens",
171 res.at("/matches/0/tokenSource").asText());
Akron640458c2015-06-25 12:36:15 +0200172 assertEquals(
173 "base base/paragraphs base/sentences connexor connexor/morpho connexor/phrase connexor/sentences connexor/syntax corenlp corenlp/constituency corenlp/morpho corenlp/namedentities corenlp/sentences glemm glemm/morpho mate mate/morpho opennlp opennlp/morpho opennlp/sentences treetagger treetagger/morpho treetagger/sentences xip xip/constituency xip/morpho xip/sentences",
174 res.at("/matches/0/foundries").asText());
Akron2b921a62019-01-14 18:52:45 +0100175
Eliza Margaretha6f989202016-10-14 21:48:29 +0200176 assertEquals("Goethe-Korpus",
177 res.at("/matches/0/corpusTitle").asText());
Akron7e3a10f2017-05-05 15:36:20 +0200178 assertEquals("QAO-NC", res.at("/matches/0/availability").asText());
Akron640458c2015-06-25 12:36:15 +0200179 assertEquals("Goethe: Maximen und Reflexionen, (1827-1842)",
180 res.at("/matches/0/docTitle").asText());
Akron3e0403f2015-06-24 20:59:13 +0200181 assertEquals("1827", res.at("/matches/0/creationDate").asText());
Akron69b958c2017-02-15 22:49:45 +0100182 // assertEquals("372-377", res.at("/matches/0/pages").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200183 assertEquals("match-GOE_AGX.00002-p7-8",
184 res.at("/matches/0/matchID").asText());
Akron6590c322015-07-02 16:08:13 +0200185
186
187 // @All fields
Eliza Margaretha6f989202016-10-14 21:48:29 +0200188 jsonString = getJsonString(getClass()
189 .getResource("/queries/metas/fields_at_all.jsonld").getFile());
Akron6590c322015-07-02 16:08:13 +0200190
191 ks = new Krill(jsonString);
192 kr = ks.apply(ki);
193 mapper = new ObjectMapper();
194 res = mapper.readTree(kr.toJsonString());
195
Eliza Margaretha6f989202016-10-14 21:48:29 +0200196 assertEquals("Verlag C. H. Beck",
197 res.at("/matches/0/publisher").asText());
Akron6590c322015-07-02 16:08:13 +0200198 assertEquals("Aphorismus", res.at("/matches/0/textType").asText());
199 assertEquals("Aphorismen", res.at("/matches/0/textTypeRef").asText());
200 assertEquals(
201 "Goethe, Johann Wolfgang von: Maximen und Reflexionen. Religion und Christentum, [Aphorismen], (Erstveröffentlichung: Stuttgart ; Tübingen, 1827-1842), In: Goethe, Johann Wolfgang von: Goethes Werke, Bd. 12, Schriften zur Kunst. Schriften zur Literatur. Maximen und Reflexionen, Hrsg.: Trunz, Erich. München: Verlag C. H. Beck, 1982, S. 372-377",
202 res.at("/matches/0/reference").asText());
203 assertEquals("de", res.at("/matches/0/language").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200204 assertEquals("opennlp#tokens",
205 res.at("/matches/0/tokenSource").asText());
Akron6590c322015-07-02 16:08:13 +0200206 assertEquals(
207 "base base/paragraphs base/sentences connexor connexor/morpho connexor/phrase connexor/sentences connexor/syntax corenlp corenlp/constituency corenlp/morpho corenlp/namedentities corenlp/sentences glemm glemm/morpho mate mate/morpho opennlp opennlp/morpho opennlp/sentences treetagger treetagger/morpho treetagger/sentences xip xip/constituency xip/morpho xip/sentences",
208 res.at("/matches/0/foundries").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200209 assertEquals("Goethe-Korpus",
210 res.at("/matches/0/corpusTitle").asText());
Akrone64cc162019-01-08 18:40:37 +0100211 assertEquals("QAO-NC", res.at("/matches/0/availability").asText());
Akron6590c322015-07-02 16:08:13 +0200212 assertEquals("Goethe: Maximen und Reflexionen, (1827-1842)",
213 res.at("/matches/0/docTitle").asText());
214 assertEquals("1827", res.at("/matches/0/creationDate").asText());
Akron69b958c2017-02-15 22:49:45 +0100215 // assertEquals("372-377", res.at("/matches/0/pages").asText());
Eliza Margaretha6f989202016-10-14 21:48:29 +0200216 assertEquals("match-GOE_AGX.00002-p7-8",
217 res.at("/matches/0/matchID").asText());
Akron3e0403f2015-06-24 20:59:13 +0200218 };
Akron48937e92015-06-26 01:49:02 +0200219
Akron40550172015-08-04 03:06:12 +0200220
Akron484c3c12015-07-07 20:25:44 +0200221 @Test
222 public void searchCollectionFields () throws IOException {
223 KrillIndex ki = new KrillIndex();
224 FieldDocument fd = new FieldDocument();
225 fd.addString("corpusSigle", "ABC");
226 fd.addString("docSigle", "ABC-123");
227 fd.addString("textSigle", "ABC-123-0001");
228 fd.addText("title", "Die Wahlverwandschaften");
229 fd.addText("author", "Johann Wolfgang von Goethe");
Akrona6dabb72019-01-09 13:09:41 +0100230 fd.addKeywords("textClass", "reisen wissenschaft");
Akron484c3c12015-07-07 20:25:44 +0200231 fd.addInt("pubDate", 20130617);
232 fd.addTV("tokens", "abc", "[(0-1)s:a|i:a|_0#0-1|-:t$<i>10]"
233 + "[(1-2)s:b|i:b|_1#1-2]" + "[(2-3)s:c|i:c|_2#2-3]");
234 ki.addDoc(fd);
235
236 FieldDocument fd2 = new FieldDocument();
237 fd2.addString("corpusSigle", "ABC");
238 fd2.addString("docSigle", "ABC-125");
239 fd2.addString("textSigle", "ABC-125-0001");
240 fd2.addText("title", "Die Glocke");
241 fd2.addText("author", "Schiller, Friedrich");
Akrona6dabb72019-01-09 13:09:41 +0100242 fd2.addKeywords("textClass", "Reisen geschichte");
Akron484c3c12015-07-07 20:25:44 +0200243 fd2.addInt("pubDate", 20130203);
244 fd2.addTV("tokens", "abc", "[(0-1)s:a|i:a|_0#0-1|-:t$<i>10]"
245 + "[(1-2)s:b|i:b|_1#1-2]" + "[(2-3)s:c|i:c|_2#2-3]");
246 ki.addDoc(fd2);
247 ki.commit();
248
249 // textClass = reisen & wissenschaft
Eliza Margaretha6f989202016-10-14 21:48:29 +0200250 String jsonString = getJsonString(getClass()
251 .getResource("/queries/collections/collection_textClass.jsonld")
252 .getFile());
Akron484c3c12015-07-07 20:25:44 +0200253 Krill ks = new Krill(jsonString);
254 KrillCollection kc = ks.getCollection();
255 kc.setIndex(ki);
Akron484c3c12015-07-07 20:25:44 +0200256 assertEquals(1, kc.numberOf("documents"));
257
258 // textClass = reisen
Eliza Margaretha6f989202016-10-14 21:48:29 +0200259 jsonString = getJsonString(getClass()
260 .getResource(
261 "/queries/collections/collection_textClass_2.jsonld")
262 .getFile());
Akron484c3c12015-07-07 20:25:44 +0200263 ks = new Krill(jsonString);
264 kc = ks.getCollection();
265 kc.setIndex(ki);
Akron484c3c12015-07-07 20:25:44 +0200266 assertEquals(2, kc.numberOf("documents"));
267
268 /*
Akron484c3c12015-07-07 20:25:44 +0200269 TokenStream ts = fd2.doc.getField("author").tokenStream(
270 (Analyzer) ki.writer().getAnalyzer(),
271 (TokenStream) null
272 );
273 // OffsetAttribute offsetAttribute = ts.addAttribute(OffsetAttribute.class);
274 CharTermAttribute charTermAttribute = ts.addAttribute(CharTermAttribute.class);
Eliza Margaretha6f989202016-10-14 21:48:29 +0200275
Akron484c3c12015-07-07 20:25:44 +0200276 ts.reset();
277 while (ts.incrementToken()) {
278 String term = charTermAttribute.toString();
279 System.err.println(">>" + term + "<<");
280 };
281 */
282
283 // author = wolfgang
Eliza Margaretha6f989202016-10-14 21:48:29 +0200284 jsonString = getJsonString(getClass()
285 .getResource("/queries/collections/collection_goethe.jsonld")
286 .getFile());
Akron484c3c12015-07-07 20:25:44 +0200287 ks = new Krill(jsonString);
288 kc = ks.getCollection();
289 kc.setIndex(ki);
Akron484c3c12015-07-07 20:25:44 +0200290 assertEquals(1, kc.numberOf("documents"));
291
292 // author = Wolfgang
Eliza Margaretha6f989202016-10-14 21:48:29 +0200293 jsonString = getJsonString(getClass()
294 .getResource("/queries/collections/collection_goethe_2.jsonld")
295 .getFile());
Akron484c3c12015-07-07 20:25:44 +0200296 ks = new Krill(jsonString);
297 kc = ks.getCollection();
298 kc.setIndex(ki);
Akron484c3c12015-07-07 20:25:44 +0200299 assertEquals(1, kc.numberOf("documents"));
300
301 Result kr = ks.apply(ki);
Akron40550172015-08-04 03:06:12 +0200302
Akron484c3c12015-07-07 20:25:44 +0200303 ObjectMapper mapper = new ObjectMapper();
304 JsonNode res = mapper.readTree(kr.toJsonString());
305 assertEquals(1, res.at("/meta/totalResults").asInt());
306 };
307
Akron48937e92015-06-26 01:49:02 +0200308
309 @Test
310 public void searchMetaContext () throws IOException {
311
312 // All fields
Eliza Margaretha6f989202016-10-14 21:48:29 +0200313 String jsonString = getJsonString(getClass()
314 .getResource("/queries/metas/context_paragraph.jsonld")
315 .getFile());
Akron48937e92015-06-26 01:49:02 +0200316
317 Krill ks = new Krill(jsonString);
318 assertTrue(ks.getMeta().getContext().isSpanDefined());
319 assertEquals("base/p", ks.getMeta().getContext().getSpanContext());
320 };
Akron8bb3bc32018-12-12 19:34:56 +0100321
322
323 @Test
324 public void searchMetaAssets () throws IOException {
325 KrillIndex ki = new KrillIndex();
326 FieldDocument fd = new FieldDocument();
327 fd.addString("textSigle", "ABC-123-0002");
328 fd.addText("title", "Die Wahlverwandtschaften");
329 fd.addText("author", "Johann Wolfgang von Goethe");
Akrona6dabb72019-01-09 13:09:41 +0100330 fd.addKeywords("textClass", "reisen wissenschaft");
Akron8bb3bc32018-12-12 19:34:56 +0100331 fd.addInt("pubDate", 20130617);
332 fd.addTV("tokens", "abc", "[(0-1)s:a|i:a|_0#0-1|-:t$<i>10]"
333 + "[(1-2)s:b|i:b|_1#1-2]" + "[(2-3)s:c|i:c|_2#2-3]");
334 fd.addAttachement("WikiLink", "data:application/x.korap-link,https://de.wikipedia.org/wiki/Beispiel");
335 ki.addDoc(fd);
336 ki.commit();
337
338 assertEquals(fd.doc.getField("textSigle").stringValue(), "ABC-123-0002");
339 assertEquals(fd.doc.getField("title").stringValue(), "Die Wahlverwandtschaften");
340 assertEquals(fd.doc.getField("author").stringValue(), "Johann Wolfgang von Goethe");
341 assertEquals(fd.doc.getField("textClass").stringValue(), "reisen wissenschaft");
342 assertEquals(fd.doc.getField("pubDate").stringValue(), "20130617");
343 assertEquals(fd.doc.getField("WikiLink").stringValue(), "data:application/x.korap-link,https://de.wikipedia.org/wiki/Beispiel");
344 }
345
Nils Diewalde3645702014-11-07 21:15:20 +0000346};