diff --git a/src/test/java/de/ids_mannheim/korap/test/BaseTest.java b/src/test/java/de/ids_mannheim/korap/test/BaseTest.java
new file mode 100644
index 0000000..4acd467
--- /dev/null
+++ b/src/test/java/de/ids_mannheim/korap/test/BaseTest.java
@@ -0,0 +1,146 @@
+package de.ids_mannheim.korap.test;
+
+import static org.junit.Assert.assertEquals;
+import static org.mockserver.integration.ClientAndServer.startClientAndServer;
+import static org.mockserver.model.HttpRequest.request;
+import static org.mockserver.model.HttpResponse.response;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.nio.charset.StandardCharsets;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.IOUtils;
+import org.junit.After;
+import org.junit.Before;
+import org.mockserver.client.MockServerClient;
+import org.mockserver.integration.ClientAndServer;
+import org.mockserver.model.Header;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+import org.xml.sax.SAXException;
+
+public class BaseTest extends KorapJerseyTest {
+    
+    protected DocumentBuilder docBuilder;
+    protected DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
+
+    protected ClientAndServer mockServer;
+    protected MockServerClient mockClient;
+
+    @Before
+    public void startMockServer () {
+        mockServer = startClientAndServer(1080);
+        mockClient = new MockServerClient("localhost", mockServer.getPort());
+    }
+
+    @After
+    public void stopMockServer () {
+        mockServer.stop();
+    }
+    
+    protected void createExpectationForSearchLemmaFein () throws IOException {
+        String searchResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/search-lemma-fein.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient.reset()
+                .when(request().withMethod("GET").withPath("/search")
+                        .withQueryStringParameter("q", "[tt:lemma=\"fein\"]")
+                        .withQueryStringParameter("ql", "fcsql")
+                        .withQueryStringParameter("v", "2.0")
+                        .withQueryStringParameter("context", "sentence")
+                        .withQueryStringParameter("count", "1")
+                        .withQueryStringParameter("offset", "0"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(searchResult).withStatusCode(200));
+    }
+    
+    protected void createExpectationForMatchInfoLemmaFein() throws IOException{
+        String matchInfoResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/GOE-AGF-00000-p4276-4277.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient
+                .when(request().withMethod("GET")
+                        .withPath("/corpus/GOE/AGF/00000/p4276-4277/matchInfo")
+                        .withQueryStringParameter("foundry", "*")
+                        .withQueryStringParameter("spans", "false"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(matchInfoResult).withStatusCode(200));
+    }
+
+    protected void checkSRUSearchRetrieveResponse (InputStream entity)
+            throws SAXException, IOException, ParserConfigurationException {
+
+        docBuilder = factory.newDocumentBuilder();
+        Document doc = docBuilder.parse(entity);
+
+        NodeList nodelist = doc.getElementsByTagName("sruResponse:version");
+        assertEquals("2.0", nodelist.item(0).getTextContent());
+        nodelist = doc.getElementsByTagName("sruResponse:recordSchema");
+        assertEquals("http://clarin.eu/fcs/resource",
+                nodelist.item(0).getTextContent());
+
+        NodeList resources = doc.getElementsByTagName("fcs:Resource");
+        String attr = resources.item(0).getAttributes().getNamedItem("pid")
+                .getNodeValue();
+
+        nodelist = doc.getElementsByTagName("fcs:DataView");
+        attr = nodelist.item(0).getAttributes().getNamedItem("type")
+                .getNodeValue();
+        assertEquals("application/x-clarin-fcs-hits+xml", attr);
+
+        Node node = nodelist.item(0).getFirstChild();
+        assertEquals("hits:Result", node.getNodeName());
+        NodeList children = node.getChildNodes();
+        if (children.getLength() > 1) {
+            assertEquals("hits:Hit", children.item(1).getNodeName());
+        }
+
+        attr = nodelist.item(1).getAttributes().getNamedItem("type")
+                .getNodeValue();
+        assertEquals("application/x-clarin-fcs-adv+xml", attr);
+        node = nodelist.item(1).getFirstChild();
+        assertEquals("adv:Advanced", node.getNodeName());
+
+        nodelist = node.getChildNodes();
+        node = nodelist.item(0);
+        assertEquals("adv:Segments", node.getNodeName());
+        node = nodelist.item(1);
+        assertEquals("adv:Layers", node.getNodeName());
+
+        checkSegmentPosition(resources);
+    }
+
+    protected void checkSegmentPosition (NodeList resources) {
+        // dataviews
+        NodeList childNodes = resources.item(0).getFirstChild().getChildNodes();
+        // segments
+        childNodes = childNodes.item(1).getFirstChild().getChildNodes().item(0)
+                .getChildNodes();
+
+        Node node = childNodes.item(0);
+        // 1st Segment
+        assertEquals("adv:Segment", node.getNodeName());
+        assertEquals("0",
+                node.getAttributes().getNamedItem("start").getNodeValue());
+
+        if (childNodes.getLength() > 3) {
+            // 4th segment
+            node = childNodes.item(3);
+            assertEquals("0",
+                    node.getAttributes().getNamedItem("start").getNodeValue());
+        }
+    }
+}
diff --git a/src/test/java/de/ids_mannheim/korap/test/KorapClientTest.java b/src/test/java/de/ids_mannheim/korap/test/KorapClientTest.java
index dee9022..341f91d 100644
--- a/src/test/java/de/ids_mannheim/korap/test/KorapClientTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/KorapClientTest.java
@@ -18,12 +18,6 @@
 /**
  * The tests are based on the sample corpus from the Goethe corpus.
  * 
- * The tests require a running KustvaktServer.
- * Specify the Kustvakt service URI at
- * /KorapSRU/src/main/webapp/WEB-INF/web.xml
- * 
- * and in the initialization of KorapClient in the code below.
- * 
  * @author margaretha
  *
  */
@@ -33,14 +27,16 @@
     private KorapMatch match;
     
     public KorapClientTest () {
-        c = new KorapClient("http://localhost:8089/api/v1.0", 25, 50);
+        c = new KorapClient("http://localhost:1080/api/v1.0", 25, 50);
     }
 
     @Test
     public void testCQLQuery () throws HttpResponseException, IOException {
-        result = c.query("der", QueryLanguage.CQL, "1.2", 1, 25,
+        
+        
+        result = c.query("der", QueryLanguage.CQL, "1.2", 1, 1,
                 null);
-        assertEquals(25, result.getMatchSize());
+        assertEquals(1, result.getMatchSize());
         assertEquals(1858, result.getTotalResults());
     
         match = result.getMatch(0);
diff --git a/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java b/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
index 431033d..b620674 100644
--- a/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/KorapSRUTest.java
@@ -1,7 +1,6 @@
 package de.ids_mannheim.korap.test;
 
 import static org.junit.Assert.assertEquals;
-import static org.mockserver.integration.ClientAndServer.startClientAndServer;
 import static org.mockserver.model.HttpRequest.request;
 import static org.mockserver.model.HttpResponse.response;
 
@@ -10,21 +9,14 @@
 import java.net.URISyntaxException;
 import java.nio.charset.StandardCharsets;
 
-import javax.xml.parsers.DocumentBuilder;
-import javax.xml.parsers.DocumentBuilderFactory;
 import javax.xml.parsers.ParserConfigurationException;
 
 import org.apache.commons.io.IOUtils;
 import org.apache.http.client.ClientProtocolException;
-import org.junit.After;
-import org.junit.Before;
 import org.junit.Test;
-import org.mockserver.client.MockServerClient;
-import org.mockserver.integration.ClientAndServer;
 import org.mockserver.model.Header;
 import org.w3c.dom.Document;
 import org.w3c.dom.NamedNodeMap;
-import org.w3c.dom.Node;
 import org.w3c.dom.NodeList;
 import org.xml.sax.SAXException;
 
@@ -33,258 +25,320 @@
 /**
  * The tests are based on the sample corpus from the Goethe corpus.
  * 
- * The tests require a running KustvaktServer.
- * Specify the Kustvakt service URI at
- * /KorapSRU/src/main/webapp/WEB-INF/web.xml
- * 
  * @author margaretha
  *
  */
-public class KorapSRUTest extends KorapJerseyTest{
-	private DocumentBuilder docBuilder;
-	
-	private ClientAndServer mockServer;
-    private MockServerClient mockClient;
-    
-	@Before
-    public void startMockServer () {
-        mockServer = startClientAndServer(1080);
-        mockClient = new MockServerClient("localhost", mockServer.getPort());
+public class KorapSRUTest extends BaseTest {
+
+    public KorapSRUTest () throws ParserConfigurationException {
+        docBuilder = factory.newDocumentBuilder();
     }
-	
-	@After
-    public void stopMockServer () {
-        mockServer.stop();
+
+    private void createExpectationForSearchFein () throws IOException {
+        String searchResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/search-fein.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient.reset()
+                .when(request().withMethod("GET").withPath("/search")
+                        .withQueryStringParameter("q", "fein")
+                        .withQueryStringParameter("ql", "cql")
+                        .withQueryStringParameter("v", "2.0")
+                        .withQueryStringParameter("context", "sentence")
+                        .withQueryStringParameter("count", "25")
+                        .withQueryStringParameter("offset", "0"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(searchResult).withStatusCode(200));
     }
-	
-	public KorapSRUTest() throws ParserConfigurationException {
-		DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
-		docBuilder = factory.newDocumentBuilder();
-	}
-	
-	@Test
-	public void searchRetrieveCQLTest() throws IOException, SAXException{
-	    ClientResponse response = resource().queryParam("operation", "searchRetrieve")
-                .queryParam("query", "fein")
-                .get(ClientResponse.class);
 
-	    InputStream entity = response.getEntity(InputStream.class);
-        checkSRUSearchRetrieveResponse(entity);
-	}
-	
-	@Test
-    public void searchRetrieveCQLTestWithStartRecord() throws IOException, SAXException{
-        ClientResponse response = resource().queryParam("operation", "searchRetrieve")
-                .queryParam("query", "der")
-                .queryParam("startRecord", "51")
-                .get(ClientResponse.class);
-      InputStream entity = response.getEntity(InputStream.class);
-      Document doc = docBuilder.parse(entity);
-      
-      NodeList nodelist = doc.getElementsByTagName("sruResponse:recordPosition");
-      assertEquals("51", nodelist.item(0).getTextContent());
-    } 
-	
-	@Test
-	public void searchRetrieveFCSQLTest() throws IOException, SAXException{
-	    ClientResponse response = resource().queryParam("operation", "searchRetrieve")
-                .queryParam("query", "[tt:lemma=\"fein\"]")
-                .queryParam("queryType", "fcs")
-                .queryParam("maximumRecords", "5")
-                .get(ClientResponse.class);
-        
-//	    String entity = response.getEntity(String.class);
-//	    System.out.println(entity);
-//	    ByteArrayInputStream bis = new ByteArrayInputStream(entity.getBytes());
-//	    checkSRUSearchRetrieveResponse(bis);
-	    
-        InputStream entity = response.getEntity(InputStream.class);
-		checkSRUSearchRetrieveResponse(entity);
-	} 
-	
-	private void checkSRUSearchRetrieveResponse(InputStream entity) throws SAXException, IOException {
-		
-		Document doc = docBuilder.parse(entity);
-		
-		NodeList nodelist = doc.getElementsByTagName("sruResponse:version");
-		assertEquals("2.0", nodelist.item(0).getTextContent());
-		nodelist = doc.getElementsByTagName("sruResponse:recordSchema");
-		assertEquals("http://clarin.eu/fcs/resource", nodelist.item(0).getTextContent());
-		
-		NodeList resources = doc.getElementsByTagName("fcs:Resource");
-		String attr  = resources.item(0).getAttributes().getNamedItem("pid").getNodeValue();
-		
-		nodelist = doc.getElementsByTagName("fcs:DataView");
-		attr = nodelist.item(0).getAttributes().getNamedItem("type").getNodeValue();
-		assertEquals("application/x-clarin-fcs-hits+xml", attr);
-		
-		Node node = nodelist.item(0).getFirstChild();
-		assertEquals("hits:Result", node.getNodeName());
-		NodeList children = node.getChildNodes();
-		assertEquals("hits:Hit", children.item(1).getNodeName());
-		
-		attr = nodelist.item(1).getAttributes().getNamedItem("type").getNodeValue();
-		assertEquals("application/x-clarin-fcs-adv+xml", attr);
-		node = nodelist.item(1).getFirstChild();
-		assertEquals("adv:Advanced", node.getNodeName());
-		
-		nodelist = node.getChildNodes();
-		node = nodelist.item(0);
-		assertEquals("adv:Segments", node.getNodeName());
-		node = nodelist.item(1);
-		assertEquals("adv:Layers", node.getNodeName());
-		
-		checkSegmentPosition(resources);
-	}
-	
-	
-	private void checkSegmentPosition (NodeList resources) {
-        // dataviews
-        NodeList childNodes = resources.item(1).getFirstChild().getChildNodes();
-        // segments
-        childNodes = childNodes.item(1).getFirstChild().getChildNodes().item(0)
-                .getChildNodes();
+    private void createExpectationForMatchInfoFein () throws IOException {
+        String matchInfoResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/GOE-AGF-00000-p15205-15206.jsonld"),
+                StandardCharsets.UTF_8);
 
-        Node node = childNodes.item(0);
-        // 1st Segment
-        assertEquals("adv:Segment", node.getNodeName());
-        assertEquals("0",
-                node.getAttributes().getNamedItem("start").getNodeValue());
+        mockClient
+                .when(request().withMethod("GET")
+                        .withPath(
+                                "/corpus/GOE/AGF/00000/p15205-15206/matchInfo")
+                        .withQueryStringParameter("foundry", "*")
+                        .withQueryStringParameter("spans", "false"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(matchInfoResult).withStatusCode(200));
 
-        // 4th segment
-        node = childNodes.item(3);
-        assertEquals("0",
-                node.getAttributes().getNamedItem("start").getNodeValue());
+        matchInfoResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/GOE-AGF-00000-p15216-15217.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient
+                .when(request().withMethod("GET")
+                        .withPath(
+                                "/corpus/GOE/AGF/00000/p15216-15217/matchInfo")
+                        .withQueryStringParameter("foundry", "*")
+                        .withQueryStringParameter("spans", "false"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(matchInfoResult).withStatusCode(200));
+
+        matchInfoResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/GOE-AGF-00000-p45002-45003.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient
+                .when(request().withMethod("GET")
+                        .withPath(
+                                "/corpus/GOE/AGF/00000/p45002-45003/matchInfo")
+                        .withQueryStringParameter("foundry", "*")
+                        .withQueryStringParameter("spans", "false"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(matchInfoResult).withStatusCode(200));
+
     }
 
     @Test
-    public void searchRetrieveWithResourceId() throws IOException, URISyntaxException, IllegalStateException, SAXException{
-	    ClientResponse response = resource().queryParam("operation", "searchRetrieve")
-                .queryParam("query", "fein")
-                .queryParam("x-fcs-context", "GOE")
-                .get(ClientResponse.class);
-        
-	    InputStream entity = response.getEntity(InputStream.class);
-        checkSRUSearchRetrieveResponse(entity);
-    } 
-	
-	@Test
-	public void explainTest() throws URISyntaxException, ClientProtocolException, IOException, IllegalStateException, SAXException{
-	    
-	    ClientResponse response = resource().queryParam("operation", "explain")
-                .get(ClientResponse.class);
-        
+    public void searchRetrieveCQLTest ()
+            throws IOException, SAXException, ParserConfigurationException {
+        createExpectationForSearchFein();
+        createExpectationForMatchInfoFein();
+
+        ClientResponse response =
+                resource().queryParam("operation", "searchRetrieve")
+                        .queryParam("query", "fein").get(ClientResponse.class);
+
         InputStream entity = response.getEntity(InputStream.class);
-        
-		assertEquals(200,response.getStatus());
-		
-		Document doc = docBuilder.parse(entity);
-		NodeList nodelist = doc.getElementsByTagName("sruResponse:version");
-		assertEquals("2.0", nodelist.item(0).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("sruResponse:recordSchema");
-		assertEquals("http://explain.z3950.org/dtd/2.0/", nodelist.item(0).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("zr:serverInfo");
-		NamedNodeMap attributes = nodelist.item(0).getAttributes();
-		assertEquals("SRU", attributes.getNamedItem("protocol").getNodeValue());
-		assertEquals("2.0", attributes.getNamedItem("version").getNodeValue()); 
-		assertEquals("http", attributes.getNamedItem("transport").getNodeValue());
-		
-		NodeList children = nodelist.item(0).getChildNodes();
-		assertEquals("zr:host", children.item(0).getNodeName());
-		assertEquals("127.0.0.1", children.item(0).getTextContent());
-		assertEquals("zr:port", children.item(1).getNodeName());
-		assertEquals("8080", children.item(1).getTextContent());
-		assertEquals("zr:database", children.item(2).getNodeName());
-		assertEquals("korapsru", children.item(2).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("zr:databaseInfo");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals("zr:title", children.item(0).getNodeName());
-		assertEquals("KorAP", children.item(0).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("zr:indexInfo");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals("zr:set", children.item(0).getNodeName());
-		assertEquals("http://clarin.eu/fcs/resource", children.item(0).getAttributes().getNamedItem("identifier").getNodeValue());
-		assertEquals("fcs", children.item(0).getAttributes().getNamedItem("name").getNodeValue());
-		
-		nodelist = doc.getElementsByTagName("zr:schemaInfo");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals("zr:schema", children.item(0).getNodeName());
-		assertEquals("http://clarin.eu/fcs/resource", children.item(0).getAttributes().getNamedItem("identifier").getNodeValue());
-		assertEquals("fcs", children.item(0).getAttributes().getNamedItem("name").getNodeValue());
-		
-		nodelist = doc.getElementsByTagName("zr:configInfo");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals("numberOfRecords", children.item(0).getAttributes().getNamedItem("type").getNodeValue());
-		assertEquals("25", children.item(0).getTextContent());
-		assertEquals("numberOfRecords", children.item(0).getAttributes().getNamedItem("type").getNodeValue());
-		assertEquals("50", children.item(1).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("ed:EndpointDescription");
-		assertEquals(0, nodelist.getLength());
-	}
-	
-	@Test
-	public void explainEndpointDescriptionTest() throws URISyntaxException, ClientProtocolException, IOException, IllegalStateException, SAXException{
-	    
-	    String korapResources = IOUtils.toString(
+        checkSRUSearchRetrieveResponse(entity);
+    }
+
+    @Test
+    public void searchRetrieveWithResourceId ()
+            throws IOException, URISyntaxException, IllegalStateException,
+            SAXException, ParserConfigurationException {
+        createExpectationForSearchFein();
+        createExpectationForMatchInfoFein();
+
+        ClientResponse response = resource()
+                .queryParam("operation", "searchRetrieve")
+                .queryParam("query", "fein").queryParam("x-fcs-context", "GOE")
+                .get(ClientResponse.class);
+
+        InputStream entity = response.getEntity(InputStream.class);
+        checkSRUSearchRetrieveResponse(entity);
+    }
+
+    @Test
+    public void searchRetrieveFCSQLTest ()
+            throws IOException, SAXException, ParserConfigurationException {
+
+        createExpectationForSearchLemmaFein();
+        createExpectationForMatchInfoLemmaFein();
+
+        ClientResponse response = resource()
+                .queryParam("operation", "searchRetrieve")
+                .queryParam("query", "[tt:lemma=\"fein\"]")
+                .queryParam("queryType", "fcs")
+                .queryParam("maximumRecords", "1").get(ClientResponse.class);
+
+        InputStream entity = response.getEntity(InputStream.class);
+        checkSRUSearchRetrieveResponse(entity);
+    }
+
+    @Test
+    public void searchRetrieveCQLTestWithStartRecord ()
+            throws IOException, SAXException {
+
+        String searchResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/search-der.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient.reset()
+                .when(request().withMethod("GET").withPath("/search")
+                        .withQueryStringParameter("q", "der")
+                        .withQueryStringParameter("ql", "cql")
+                        .withQueryStringParameter("v", "2.0")
+                        .withQueryStringParameter("context", "sentence")
+                        .withQueryStringParameter("count", "1")
+                        .withQueryStringParameter("offset", "50"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(searchResult).withStatusCode(200));
+
+        String matchInfoResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/GOE-AGA-01784-p1856-1857.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient
+                .when(request().withMethod("GET")
+                        .withPath("/corpus/GOE/AGA/01784/p1856-1857/matchInfo")
+                        .withQueryStringParameter("foundry", "*")
+                        .withQueryStringParameter("spans", "false"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(matchInfoResult).withStatusCode(200));
+
+        ClientResponse response = resource()
+                .queryParam("operation", "searchRetrieve")
+                .queryParam("query", "der").queryParam("startRecord", "51")
+                .queryParam("maximumRecords", "1").get(ClientResponse.class);
+        InputStream entity = response.getEntity(InputStream.class);
+        Document doc = docBuilder.parse(entity);
+
+        NodeList nodelist =
+                doc.getElementsByTagName("sruResponse:recordPosition");
+        assertEquals("51", nodelist.item(0).getTextContent());
+    }
+
+    @Test
+    public void explainTest ()
+            throws URISyntaxException, ClientProtocolException, IOException,
+            IllegalStateException, SAXException {
+
+        ClientResponse response = resource().queryParam("operation", "explain")
+                .get(ClientResponse.class);
+
+        InputStream entity = response.getEntity(InputStream.class);
+
+        assertEquals(200, response.getStatus());
+
+        Document doc = docBuilder.parse(entity);
+        NodeList nodelist = doc.getElementsByTagName("sruResponse:version");
+        assertEquals("2.0", nodelist.item(0).getTextContent());
+
+        nodelist = doc.getElementsByTagName("sruResponse:recordSchema");
+        assertEquals("http://explain.z3950.org/dtd/2.0/",
+                nodelist.item(0).getTextContent());
+
+        nodelist = doc.getElementsByTagName("zr:serverInfo");
+        NamedNodeMap attributes = nodelist.item(0).getAttributes();
+        assertEquals("SRU", attributes.getNamedItem("protocol").getNodeValue());
+        assertEquals("2.0", attributes.getNamedItem("version").getNodeValue());
+        assertEquals("http",
+                attributes.getNamedItem("transport").getNodeValue());
+
+        NodeList children = nodelist.item(0).getChildNodes();
+        assertEquals("zr:host", children.item(0).getNodeName());
+        assertEquals("127.0.0.1", children.item(0).getTextContent());
+        assertEquals("zr:port", children.item(1).getNodeName());
+        assertEquals("8080", children.item(1).getTextContent());
+        assertEquals("zr:database", children.item(2).getNodeName());
+        assertEquals("korapsru", children.item(2).getTextContent());
+
+        nodelist = doc.getElementsByTagName("zr:databaseInfo");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals("zr:title", children.item(0).getNodeName());
+        assertEquals("KorAP", children.item(0).getTextContent());
+
+        nodelist = doc.getElementsByTagName("zr:indexInfo");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals("zr:set", children.item(0).getNodeName());
+        assertEquals("http://clarin.eu/fcs/resource", children.item(0)
+                .getAttributes().getNamedItem("identifier").getNodeValue());
+        assertEquals("fcs", children.item(0).getAttributes()
+                .getNamedItem("name").getNodeValue());
+
+        nodelist = doc.getElementsByTagName("zr:schemaInfo");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals("zr:schema", children.item(0).getNodeName());
+        assertEquals("http://clarin.eu/fcs/resource", children.item(0)
+                .getAttributes().getNamedItem("identifier").getNodeValue());
+        assertEquals("fcs", children.item(0).getAttributes()
+                .getNamedItem("name").getNodeValue());
+
+        nodelist = doc.getElementsByTagName("zr:configInfo");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals("numberOfRecords", children.item(0).getAttributes()
+                .getNamedItem("type").getNodeValue());
+        assertEquals("25", children.item(0).getTextContent());
+        assertEquals("numberOfRecords", children.item(0).getAttributes()
+                .getNamedItem("type").getNodeValue());
+        assertEquals("50", children.item(1).getTextContent());
+
+        nodelist = doc.getElementsByTagName("ed:EndpointDescription");
+        assertEquals(0, nodelist.getLength());
+    }
+
+    @Test
+    public void explainEndpointDescriptionTest ()
+            throws URISyntaxException, ClientProtocolException, IOException,
+            IllegalStateException, SAXException {
+
+        String korapResources = IOUtils.toString(
                 ClassLoader.getSystemResourceAsStream(
                         "korap-api-responses/resources.json"),
                 StandardCharsets.UTF_8);
-        
+
         mockClient.reset()
-        .when(request().withMethod("GET").withPath("/resource"))
-        .respond(response()
-                .withHeader(new Header("Content-Type",
-                        "application/json; charset=utf-8"))
-                .withBody(korapResources).withStatusCode(200));
-        
-	    ClientResponse response = resource().queryParam("operation", "explain")
-	            .queryParam("x-fcs-endpoint-description", "true")
+                .when(request().withMethod("GET").withPath("/resource"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(korapResources).withStatusCode(200));
+
+        ClientResponse response = resource().queryParam("operation", "explain")
+                .queryParam("x-fcs-endpoint-description", "true")
                 .get(ClientResponse.class);
-        
+
         InputStream entity = response.getEntity(InputStream.class);
-        
-        assertEquals(200,response.getStatus());
-        
+
+        assertEquals(200, response.getStatus());
+
         Document doc = docBuilder.parse(entity);
-		NodeList nodelist = doc.getElementsByTagName("ed:EndpointDescription");
-		assertEquals("2", nodelist.item(0).getAttributes().getNamedItem("version").getNodeValue());
-		
-		nodelist = doc.getElementsByTagName("ed:Capabilities");
-		NodeList children = nodelist.item(0).getChildNodes();
-		assertEquals("http://clarin.eu/fcs/capability/basic-search", children.item(0).getTextContent());
-		assertEquals("http://clarin.eu/fcs/capability/advanced-search", children.item(1).getTextContent());
-		
-		nodelist = doc.getElementsByTagName("ed:SupportedDataViews");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals("application/x-clarin-fcs-hits+xml", children.item(0).getTextContent());
-		assertEquals("send-by-default", children.item(0).getAttributes().getNamedItem("delivery-policy").getNodeValue());
-		assertEquals("application/x-clarin-fcs-adv+xml", children.item(1).getTextContent());
-		assertEquals("send-by-default", children.item(1).getAttributes().getNamedItem("delivery-policy").getNodeValue());
-		
-		nodelist = doc.getElementsByTagName("ed:SupportedLayers");
-		children = nodelist.item(0).getChildNodes();
-		assertEquals(6, children.getLength());
-		assertEquals("text", children.item(0).getTextContent());
-		assertEquals("http://clarin.ids-mannheim.de/korapsru/layers/text", children.item(0).getAttributes().getNamedItem("result-id").getNodeValue());
-		assertEquals("pos", children.item(1).getTextContent());
-		assertEquals("corenlp", children.item(1).getAttributes().getNamedItem("qualifier").getNodeValue());
-		
-		
-		nodelist = doc.getElementsByTagName("ed:Resource");
-		assertEquals(3, nodelist.getLength());
-		children = nodelist.item(0).getChildNodes();
-		assertEquals(7, children.getLength());
-		assertEquals("ed:Title", children.item(0).getNodeName());
-		assertEquals("ed:Description", children.item(2).getNodeName());
-		assertEquals("ed:LandingPageURI", children.item(3).getNodeName());
-		assertEquals("ed:Languages", children.item(4).getNodeName());
-		assertEquals("ed:AvailableDataViews", children.item(5).getNodeName());
-		assertEquals("ed:AvailableLayers", children.item(6).getNodeName());
-	}
-	
+        NodeList nodelist = doc.getElementsByTagName("ed:EndpointDescription");
+        assertEquals("2", nodelist.item(0).getAttributes()
+                .getNamedItem("version").getNodeValue());
+
+        nodelist = doc.getElementsByTagName("ed:Capabilities");
+        NodeList children = nodelist.item(0).getChildNodes();
+        assertEquals("http://clarin.eu/fcs/capability/basic-search",
+                children.item(0).getTextContent());
+        assertEquals("http://clarin.eu/fcs/capability/advanced-search",
+                children.item(1).getTextContent());
+
+        nodelist = doc.getElementsByTagName("ed:SupportedDataViews");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals("application/x-clarin-fcs-hits+xml",
+                children.item(0).getTextContent());
+        assertEquals("send-by-default", children.item(0).getAttributes()
+                .getNamedItem("delivery-policy").getNodeValue());
+        assertEquals("application/x-clarin-fcs-adv+xml",
+                children.item(1).getTextContent());
+        assertEquals("send-by-default", children.item(1).getAttributes()
+                .getNamedItem("delivery-policy").getNodeValue());
+
+        nodelist = doc.getElementsByTagName("ed:SupportedLayers");
+        children = nodelist.item(0).getChildNodes();
+        assertEquals(6, children.getLength());
+        assertEquals("text", children.item(0).getTextContent());
+        assertEquals("http://clarin.ids-mannheim.de/korapsru/layers/text",
+                children.item(0).getAttributes().getNamedItem("result-id")
+                        .getNodeValue());
+        assertEquals("pos", children.item(1).getTextContent());
+        assertEquals("corenlp", children.item(1).getAttributes()
+                .getNamedItem("qualifier").getNodeValue());
+
+        nodelist = doc.getElementsByTagName("ed:Resource");
+        assertEquals(3, nodelist.getLength());
+        children = nodelist.item(0).getChildNodes();
+        assertEquals(7, children.getLength());
+        assertEquals("ed:Title", children.item(0).getNodeName());
+        assertEquals("ed:Description", children.item(2).getNodeName());
+        assertEquals("ed:LandingPageURI", children.item(3).getNodeName());
+        assertEquals("ed:Languages", children.item(4).getNodeName());
+        assertEquals("ed:AvailableDataViews", children.item(5).getNodeName());
+        assertEquals("ed:AvailableLayers", children.item(6).getNodeName());
+    }
+
 }
diff --git a/src/test/java/de/ids_mannheim/korap/test/RedirectTest.java b/src/test/java/de/ids_mannheim/korap/test/RedirectTest.java
index 8364bad..35df809 100644
--- a/src/test/java/de/ids_mannheim/korap/test/RedirectTest.java
+++ b/src/test/java/de/ids_mannheim/korap/test/RedirectTest.java
@@ -1,52 +1,74 @@
 package de.ids_mannheim.korap.test;
 
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
+import static org.mockserver.model.HttpOverrideForwardedRequest.forwardOverriddenRequest;
+import static org.mockserver.model.HttpRequest.request;
+import static org.mockserver.model.HttpResponse.response;
 
-import java.io.BufferedReader;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.InputStreamReader;
+import java.nio.charset.StandardCharsets;
 
-import org.apache.http.HttpResponse;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.apache.commons.io.IOUtils;
 import org.apache.http.client.ClientProtocolException;
 import org.apache.http.client.HttpClient;
-import org.apache.http.client.methods.HttpGet;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.junit.Test;
+import org.mockserver.model.Header;
+import org.xml.sax.SAXException;
+
+import com.sun.jersey.api.client.ClientResponse;
 
 import de.ids_mannheim.korap.util.RedirectStrategy;
 
 /**
- * The test requires a running KustvaktServer.
- * Specify the Kustvakt service URI at
- * /KorapSRU/src/main/webapp/WEB-INF/web.xml
  * 
  * @author margaretha
  *
  */
-public class RedirectTest {
+public class RedirectTest extends BaseTest {
 
-//    private String korapAPI = "http://localhost:8089/api/";
-    private String korapAPI = "http://10.0.10.51:9000/api/";
-    
     @Test
-    public void testRedirect () throws ClientProtocolException, IOException {
-        HttpClient client = HttpClientBuilder.create()
-                .setRedirectStrategy(new RedirectStrategy()).build();
-        HttpResponse response = client.execute(new HttpGet(
-                korapAPI+"search?q=Wasser&ql=poliqarp"));
-        assertEquals(200, response.getStatusLine().getStatusCode());
-        
-        InputStream is = response.getEntity().getContent();
-        
-        BufferedReader br = new BufferedReader(new InputStreamReader(is));
-        String line = null;
-        String content = "";
-        while ((line = br.readLine())!=null){
-            content += line;
-        }
-        
-        assertTrue(!content.isEmpty());
+    public void testRedirect () throws ClientProtocolException, IOException,
+            SAXException, ParserConfigurationException {
+
+        String searchResult = IOUtils.toString(
+                ClassLoader.getSystemResourceAsStream(
+                        "korap-api-responses/search-lemma-fein.jsonld"),
+                StandardCharsets.UTF_8);
+
+        mockClient.reset()
+                .when(request().withMethod("GET").withPath("/search")
+                        .withQueryStringParameter("q", "[tt:lemma=\"fein\"]")
+                        .withQueryStringParameter("ql", "fcsql")
+                        .withQueryStringParameter("v", "2.0")
+                        .withQueryStringParameter("context", "sentence")
+                        .withQueryStringParameter("count", "1")
+                        .withQueryStringParameter("offset", "0"))
+                .forward(forwardOverriddenRequest(
+                        request().withPath("/redirect")));
+
+        mockClient
+                .when(request().withMethod("GET").withPath("/redirect")
+                        .withQueryStringParameter("q", "[tt:lemma=\"fein\"]")
+                        .withQueryStringParameter("ql", "fcsql")
+                        .withQueryStringParameter("v", "2.0")
+                        .withQueryStringParameter("context", "sentence")
+                        .withQueryStringParameter("count", "1")
+                        .withQueryStringParameter("offset", "0"))
+                .respond(response()
+                        .withHeader(new Header("Content-Type",
+                                "application/json; charset=utf-8"))
+                        .withBody(searchResult).withStatusCode(200));
+
+        ClientResponse response = resource()
+                .queryParam("operation", "searchRetrieve")
+                .queryParam("query", "[tt:lemma=\"fein\"]")
+                .queryParam("queryType", "fcs")
+                .queryParam("maximumRecords", "1").get(ClientResponse.class);
+
+        InputStream entity = response.getEntity(InputStream.class);
+        checkSRUSearchRetrieveResponse(entity);
     }
 }
diff --git a/src/test/resources/korap-api-responses/GOE-AGA-01784-p1856-1857.jsonld b/src/test/resources/korap-api-responses/GOE-AGA-01784-p1856-1857.jsonld
new file mode 100644
index 0000000..82d227e
--- /dev/null
+++ b/src/test/resources/korap-api-responses/GOE-AGA-01784-p1856-1857.jsonld
@@ -0,0 +1,26 @@
+{
+    "@context": "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta": {"version": "Krill-0.59.3"},
+    "snippet": "<span class=\"context-left\"><span class=\"more\"><\/span><\/span><span class=\"match\"><mark>Entwurf<\/mark><\/span><span class=\"context-right\"><span class=\"more\"><\/span><\/span>",
+    "matchID": "match-GOE/AGF/00000-p1856-1857",
+    "textSigle": "GOE/AGF/00000",
+    "subTitle": "Didaktischer Teil",
+    "author": "Goethe, Johann Wolfgang von",
+    "docSigle": "GOE/AGF",
+    "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+    "pubPlace": "München",
+    "availability": "CC-BY-SA",
+    "title": "Zur Farbenlehre",
+    "pubDate": "1982",
+    "corpusSigle": "GOE",
+    "context": {
+        "left": [
+            "token",
+            0
+        ],
+        "right": [
+            "token",
+            0
+        ]
+    }
+}
diff --git a/src/test/resources/korap-api-responses/GOE-AGF-00000-p15205-15206.jsonld b/src/test/resources/korap-api-responses/GOE-AGF-00000-p15205-15206.jsonld
new file mode 100644
index 0000000..bd9c3d2
--- /dev/null
+++ b/src/test/resources/korap-api-responses/GOE-AGF-00000-p15205-15206.jsonld
@@ -0,0 +1 @@
+{"@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld","meta":{"version":"Krill-0.59.3"},"snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:wir\"><span title=\"tt/p:PPER\">wir</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VMFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VMFIN\"><span title=\"opennlp/p:VVFIN\"><span title=\"tt/l:können\"><span title=\"tt/p:VMFIN\">können</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:also\"><span title=\"tt/p:ADV\">also</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">den</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:untern\"><span title=\"tt/p:APPRART\">untern</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Teil\"><span title=\"tt/p:NN\">Teil</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Flamme\"><span title=\"tt/p:NN\">Flamme</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:für\"><span title=\"tt/p:APPR\">für</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:eine\"><span title=\"tt/p:ART\">einen</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Dunst\"><span title=\"tt/p:NN\">Dunst</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVINF\"><span title=\"marmot/p:VVINF\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:ansprechen\"><span title=\"tt/p:VVFIN\"><span title=\"tt/p:VVINF\">ansprechen</span></span></span></span></span></span>, <span title=\"corenlp/p:PRELS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PRELS\"><span title=\"opennlp/p:PWAT\"><span title=\"tt/l:welche\"><span title=\"tt/p:PWAT\"><span title=\"tt/p:PWS\">welcher</span></span></span></span></span></span></span></span></span>, <span title=\"corenlp/p:ADJD\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:obgleich\"><span title=\"tt/p:KOUS\">obgleich</span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:unendlich\"><span title=\"tt/p:ADJD\">unendlich</span></span></span></span></span></span> <mark><span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:fein\"><span title=\"tt/p:ADJD\"><span title=\"tt/p:PTKVZ\">fein</span></span></span></span></span></span></span></mark>, <span title=\"corenlp/p:KON\"><span title=\"marmot/p:KON\"><span title=\"opennlp/p:KON\"><span title=\"tt/l:doch\"><span title=\"tt/p:ADV\"><span title=\"tt/p:KON\">doch</span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:vor\"><span title=\"tt/p:APPR\">vor</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:ADJA\"><span title=\"tt/l:dunkel\"><span title=\"tt/p:ADJA\">dunklen</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Fläche\"><span title=\"tt/p:NN\">Fläche</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:sichtbar\"><span title=\"tt/p:ADJD\">sichtbar</span></span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:werden\"><span title=\"tt/p:VAFIN\">wird</span></span></span></span></span></span></span></span></span>: <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:er\"><span title=\"tt/p:PPER\">er</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:sein\"><span title=\"tt/p:VAFIN\">ist</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:so\"><span title=\"tt/p:ADV\">so</span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:fein\"><span title=\"tt/p:ADJD\">fein</span></span></span></span></span></span>, <span title=\"corenlp/p:KOUS\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:KOUS\"><span title=\"tt/l:dass\"><span title=\"tt/p:KOUS\">daß</span></span></span></span></span> <span title=\"corenlp/p:PIS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PIS\"><span title=\"opennlp/p:PIS\"><span title=\"tt/l:man\"><span title=\"tt/p:PIS\">man</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:bequem\"><span title=\"tt/p:ADJD\">bequem</span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:durch\"><span title=\"tt/p:APPR\">durch</span></span></span></span></span> <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:er\"><span title=\"tt/p:PPER\">ihn</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVINF\"><span title=\"marmot/p:VVINF\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:lesen\"><span title=\"tt/p:VVINF\">lesen</span></span></span></span></span> <span title=\"corenlp/p:VMFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VMFIN\"><span title=\"opennlp/p:VMFIN\"><span title=\"tt/l:können\"><span title=\"tt/p:VMFIN\">kann</span></span></span></span></span></span></span></span></span>; <span title=\"corenlp/p:VVIZU\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:PROAV\"><span title=\"tt/l:dahingegen\"><span title=\"tt/p:ADV\">dahingegen</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">die</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Spitze\"><span title=\"tt/p:NN\">Spitze</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Flamme\"><span title=\"tt/p:NN\">Flamme</span></span></span></span></span></span></span></span>, <span title=\"corenlp/p:PWAT\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:PRELS\"><span title=\"opennlp/p:PRELS\"><span title=\"tt/l:welche\"><span title=\"tt/p:PRELS\">welche</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:wir\"><span title=\"tt/p:PPER\"><span title=\"tt/p:PRF\">uns</span></span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">die</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Gegenstand\"><span title=\"tt/p:NN\">Gegenstände</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVFIN\"><span title=\"marmot/p:VVPP\"><span title=\"opennlp/p:VVPP\"><span title=\"tt/l:verdecken\"><span title=\"tt/p:VVFIN\"><span title=\"tt/p:VVPP\">verdeckt</span></span></span></span></span></span>, <span title=\"corenlp/p:KOKOM\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:KOUS\"><span title=\"tt/l:als\"><span title=\"tt/p:KOKOM\"><span title=\"tt/p:KOUS\">als</span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:eine\"><span title=\"tt/p:ART\">ein</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:ADJA\"><span title=\"tt/l:selbstleuchtend\"><span title=\"tt/p:ADJA\">selbstleuchtender</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Körper\"><span title=\"tt/p:NN\">Körper</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVIZU\"><span title=\"marmot/p:VVIZU\"><span title=\"opennlp/p:VVIZU\"><span title=\"tt/l:ansehen\"><span title=\"tt/p:VVIZU\">anzusehen</span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:sein\"><span title=\"tt/p:VAFIN\">ist</span></span></span></span></span></span></span></span></span>.</span><span class=\"context-right\"></span>","matchID":"match-GOE/AGF/00000-p15205-15206","textSigle":"GOE/AGF/00000","subTitle":"Didaktischer Teil","author":"Goethe, Johann Wolfgang von","docSigle":"GOE/AGF","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"München","availability":"CC-BY-SA","title":"Zur Farbenlehre","pubDate":"1982","corpusSigle":"GOE","context":{"left":["token",0],"right":["token",0]}}
diff --git a/src/test/resources/korap-api-responses/GOE-AGF-00000-p15216-15217.jsonld b/src/test/resources/korap-api-responses/GOE-AGF-00000-p15216-15217.jsonld
new file mode 100644
index 0000000..a6d1ce9
--- /dev/null
+++ b/src/test/resources/korap-api-responses/GOE-AGF-00000-p15216-15217.jsonld
@@ -0,0 +1 @@
+{"@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld","meta":{"version":"Krill-0.59.3"},"snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:wir\"><span title=\"tt/p:PPER\">wir</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VMFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VMFIN\"><span title=\"opennlp/p:VVFIN\"><span title=\"tt/l:können\"><span title=\"tt/p:VMFIN\">können</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:also\"><span title=\"tt/p:ADV\">also</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">den</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:untern\"><span title=\"tt/p:APPRART\">untern</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Teil\"><span title=\"tt/p:NN\">Teil</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Flamme\"><span title=\"tt/p:NN\">Flamme</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:für\"><span title=\"tt/p:APPR\">für</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:eine\"><span title=\"tt/p:ART\">einen</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Dunst\"><span title=\"tt/p:NN\">Dunst</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVINF\"><span title=\"marmot/p:VVINF\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:ansprechen\"><span title=\"tt/p:VVFIN\"><span title=\"tt/p:VVINF\">ansprechen</span></span></span></span></span></span>, <span title=\"corenlp/p:PRELS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PRELS\"><span title=\"opennlp/p:PWAT\"><span title=\"tt/l:welche\"><span title=\"tt/p:PWAT\"><span title=\"tt/p:PWS\">welcher</span></span></span></span></span></span></span></span></span>, <span title=\"corenlp/p:ADJD\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:obgleich\"><span title=\"tt/p:KOUS\">obgleich</span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:unendlich\"><span title=\"tt/p:ADJD\">unendlich</span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:fein\"><span title=\"tt/p:ADJD\"><span title=\"tt/p:PTKVZ\">fein</span></span></span></span></span></span></span>, <span title=\"corenlp/p:KON\"><span title=\"marmot/p:KON\"><span title=\"opennlp/p:KON\"><span title=\"tt/l:doch\"><span title=\"tt/p:ADV\"><span title=\"tt/p:KON\">doch</span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:vor\"><span title=\"tt/p:APPR\">vor</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:ADJA\"><span title=\"tt/l:dunkel\"><span title=\"tt/p:ADJA\">dunklen</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Fläche\"><span title=\"tt/p:NN\">Fläche</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:sichtbar\"><span title=\"tt/p:ADJD\">sichtbar</span></span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:werden\"><span title=\"tt/p:VAFIN\">wird</span></span></span></span></span></span></span></span></span>: <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:er\"><span title=\"tt/p:PPER\">er</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:sein\"><span title=\"tt/p:VAFIN\">ist</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:so\"><span title=\"tt/p:ADV\">so</span></span></span></span></span> <mark><span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:fein\"><span title=\"tt/p:ADJD\">fein</span></span></span></span></span></span></mark>, <span title=\"corenlp/p:KOUS\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:KOUS\"><span title=\"tt/l:dass\"><span title=\"tt/p:KOUS\">daß</span></span></span></span></span> <span title=\"corenlp/p:PIS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PIS\"><span title=\"opennlp/p:PIS\"><span title=\"tt/l:man\"><span title=\"tt/p:PIS\">man</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:bequem\"><span title=\"tt/p:ADJD\">bequem</span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:durch\"><span title=\"tt/p:APPR\">durch</span></span></span></span></span> <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:er\"><span title=\"tt/p:PPER\">ihn</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVINF\"><span title=\"marmot/p:VVINF\"><span title=\"opennlp/p:VVINF\"><span title=\"tt/l:lesen\"><span title=\"tt/p:VVINF\">lesen</span></span></span></span></span> <span title=\"corenlp/p:VMFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VMFIN\"><span title=\"opennlp/p:VMFIN\"><span title=\"tt/l:können\"><span title=\"tt/p:VMFIN\">kann</span></span></span></span></span></span></span></span></span>; <span title=\"corenlp/p:VVIZU\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:PROAV\"><span title=\"tt/l:dahingegen\"><span title=\"tt/p:ADV\">dahingegen</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">die</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Spitze\"><span title=\"tt/p:NN\">Spitze</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">der</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:gen\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Flamme\"><span title=\"tt/p:NN\">Flamme</span></span></span></span></span></span></span></span>, <span title=\"corenlp/p:PWAT\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:PRELS\"><span title=\"opennlp/p:PRELS\"><span title=\"tt/l:welche\"><span title=\"tt/p:PRELS\">welche</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:PPER\"><span title=\"marmot/m:case:dat\"><span title=\"marmot/m:gender:*\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:1\"><span title=\"marmot/p:PPER\"><span title=\"opennlp/p:PPER\"><span title=\"tt/l:wir\"><span title=\"tt/p:PPER\"><span title=\"tt/p:PRF\">uns</span></span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">die</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Gegenstand\"><span title=\"tt/p:NN\">Gegenstände</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVFIN\"><span title=\"marmot/p:VVPP\"><span title=\"opennlp/p:VVPP\"><span title=\"tt/l:verdecken\"><span title=\"tt/p:VVFIN\"><span title=\"tt/p:VVPP\">verdeckt</span></span></span></span></span></span>, <span title=\"corenlp/p:KOKOM\"><span title=\"marmot/p:KOUS\"><span title=\"opennlp/p:KOUS\"><span title=\"tt/l:als\"><span title=\"tt/p:KOKOM\"><span title=\"tt/p:KOUS\">als</span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:eine\"><span title=\"tt/p:ART\">ein</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:ADJA\"><span title=\"tt/l:selbstleuchtend\"><span title=\"tt/p:ADJA\">selbstleuchtender</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:masc\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Körper\"><span title=\"tt/p:NN\">Körper</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:VVIZU\"><span title=\"marmot/p:VVIZU\"><span title=\"opennlp/p:VVIZU\"><span title=\"tt/l:ansehen\"><span title=\"tt/p:VVIZU\">anzusehen</span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:sein\"><span title=\"tt/p:VAFIN\">ist</span></span></span></span></span></span></span></span></span>.</span><span class=\"context-right\"></span>","matchID":"match-GOE/AGF/00000-p15216-15217","textSigle":"GOE/AGF/00000","subTitle":"Didaktischer Teil","author":"Goethe, Johann Wolfgang von","docSigle":"GOE/AGF","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"München","availability":"CC-BY-SA","title":"Zur Farbenlehre","pubDate":"1982","corpusSigle":"GOE","context":{"left":["token",0],"right":["token",0]}}
diff --git a/src/test/resources/korap-api-responses/GOE-AGF-00000-p4276-4277.jsonld b/src/test/resources/korap-api-responses/GOE-AGF-00000-p4276-4277.jsonld
new file mode 100644
index 0000000..5bb459d
--- /dev/null
+++ b/src/test/resources/korap-api-responses/GOE-AGF-00000-p4276-4277.jsonld
@@ -0,0 +1,26 @@
+{
+    "@context": "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta": {"version": "Krill-0.59.3"},
+    "snippet": "<span class=\"context-left\"><span class=\"more\"><\/span><\/span><span class=\"match\"><mark>feineren<\/mark><\/span><span class=\"context-right\"><span class=\"more\"><\/span><\/span>",
+    "matchID": "match-GOE/AGF/00000-p4276-4277",
+    "textSigle": "GOE/AGF/00000",
+    "subTitle": "Didaktischer Teil",
+    "author": "Goethe, Johann Wolfgang von",
+    "docSigle": "GOE/AGF",
+    "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+    "pubPlace": "München",
+    "availability": "CC-BY-SA",
+    "title": "Zur Farbenlehre",
+    "pubDate": "1982",
+    "corpusSigle": "GOE",
+    "context": {
+        "left": [
+            "token",
+            0
+        ],
+        "right": [
+            "token",
+            0
+        ]
+    }
+}
diff --git a/src/test/resources/korap-api-responses/GOE-AGF-00000-p45002-45003.jsonld b/src/test/resources/korap-api-responses/GOE-AGF-00000-p45002-45003.jsonld
new file mode 100644
index 0000000..e9562a0
--- /dev/null
+++ b/src/test/resources/korap-api-responses/GOE-AGF-00000-p45002-45003.jsonld
@@ -0,0 +1 @@
+{"@context":"http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld","meta":{"version":"Krill-0.59.3"},"snippet":"<span class=\"context-left\"></span><span class=\"match\"><span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:übrigens\"><span title=\"tt/p:ADV\">übrigens</span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:haben\"><span title=\"tt/p:VAFIN\">haben</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:PIAT\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:PIAT\"><span title=\"opennlp/p:PIAT\"><span title=\"tt/l:einige\"><span title=\"tt/p:PIAT\">einige</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:pl\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Pflanze|Pflanzen\"><span title=\"tt/p:NN\">Pflanzen</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:die\"><span title=\"tt/p:ART\">die</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Eigenschaft\"><span title=\"tt/p:NN\">Eigenschaft</span></span></span></span></span></span></span></span>, <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:durch\"><span title=\"tt/p:APPR\">durch</span></span></span></span></span> <span title=\"corenlp/p:ADJA\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ADJA\"><span title=\"opennlp/p:ADJA\"><span title=\"tt/l:künstlich\"><span title=\"tt/p:ADJA\">künstliche</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:fem\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/l:Behandlung\"><span title=\"tt/p:NN\">Behandlung</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:fast\"><span title=\"tt/p:ADV\">fast</span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:durchaus\"><span title=\"tt/p:ADV\">durchaus</span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:APPR\"><span title=\"opennlp/p:APPR\"><span title=\"tt/l:in\"><span title=\"tt/p:APPR\">in</span></span></span></span></span> <span title=\"corenlp/p:ART\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:neut\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:ART\"><span title=\"opennlp/p:ART\"><span title=\"tt/l:eine\"><span title=\"tt/p:ART\">ein</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:NN\"><span title=\"marmot/m:case:acc\"><span title=\"marmot/m:gender:neut\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:NN\"><span title=\"opennlp/p:NN\"><span title=\"tt/p:NN\">Farbenmaterial</span></span></span></span></span></span></span> <span title=\"corenlp/p:VVPP\"><span title=\"marmot/p:VVPP\"><span title=\"opennlp/p:VVPP\"><span title=\"tt/l:verwandeln\"><span title=\"tt/l:verwandelt\"><span title=\"tt/p:ADJD\"><span title=\"tt/p:VVPP\">verwandelt</span></span></span></span></span></span></span> <span title=\"corenlp/p:PTKZU\"><span title=\"marmot/p:PTKZU\"><span title=\"opennlp/p:PTKZU\"><span title=\"tt/l:zu\"><span title=\"tt/p:PTKZU\">zu</span></span></span></span></span> <span title=\"corenlp/p:VAINF\"><span title=\"marmot/p:VAINF\"><span title=\"opennlp/p:VAINF\"><span title=\"tt/l:werden\"><span title=\"tt/p:VAINF\">werden</span></span></span></span></span>, <span title=\"corenlp/p:PRELS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:neut\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PRELS\"><span title=\"opennlp/p:PRELS\"><span title=\"tt/l:die\"><span title=\"tt/p:PDS\"><span title=\"tt/p:PRELS\">das</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:ADV\"><span title=\"marmot/p:ADV\"><span title=\"opennlp/p:ADV\"><span title=\"tt/l:so\"><span title=\"tt/p:ADV\">so</span></span></span></span></span> <mark><span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:fein\"><span title=\"tt/p:ADJD\">fein</span></span></span></span></span></span></mark>, <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:wirksam\"><span title=\"tt/p:ADJD\">wirksam</span></span></span></span></span></span> <span title=\"corenlp/p:KON\"><span title=\"marmot/p:KON\"><span title=\"opennlp/p:KON\"><span title=\"tt/l:und\"><span title=\"tt/p:KON\">und</span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:unendlich\"><span title=\"tt/p:ADJD\">unendlich</span></span></span></span></span></span> <span title=\"corenlp/p:ADJD\"><span title=\"marmot/m:degree:pos\"><span title=\"marmot/p:ADJD\"><span title=\"opennlp/p:ADJD\"><span title=\"tt/l:teilbar\"><span title=\"tt/p:ADJD\">teilbar</span></span></span></span></span></span> <span title=\"corenlp/p:VAFIN\"><span title=\"marmot/m:mood:ind\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/m:person:3\"><span title=\"marmot/m:tense:pres\"><span title=\"marmot/p:VAFIN\"><span title=\"opennlp/p:VAFIN\"><span title=\"tt/l:sein\"><span title=\"tt/p:VAFIN\">ist</span></span></span></span></span></span></span></span></span> <span title=\"corenlp/p:APPR\"><span title=\"marmot/p:KOKOM\"><span title=\"opennlp/p:KOKOM\"><span title=\"tt/l:als\"><span title=\"tt/p:KOKOM\">als</span></span></span></span></span> <span title=\"corenlp/p:PIAT\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:neut\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PIAT\"><span title=\"opennlp/p:PIAT\"><span title=\"tt/l:irgendeine\"><span title=\"tt/p:PIAT\">irgendein</span></span></span></span></span></span></span></span> <span title=\"corenlp/p:PIS\"><span title=\"marmot/m:case:nom\"><span title=\"marmot/m:gender:neut\"><span title=\"marmot/m:number:sg\"><span title=\"marmot/p:PIS\"><span title=\"opennlp/p:PIS\"><span title=\"tt/l:andere\"><span title=\"tt/p:PIS\">anderes</span></span></span></span></span></span></span></span>.</span><span class=\"context-right\"></span>","matchID":"match-GOE/AGF/00000-p45002-45003","textSigle":"GOE/AGF/00000","subTitle":"Didaktischer Teil","author":"Goethe, Johann Wolfgang von","docSigle":"GOE/AGF","layerInfos":"corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens","pubPlace":"München","availability":"CC-BY-SA","title":"Zur Farbenlehre","pubDate":"1982","corpusSigle":"GOE","context":{"left":["token",0],"right":["token",0]}}
diff --git a/src/test/resources/korap-api-responses/search-der.jsonld b/src/test/resources/korap-api-responses/search-der.jsonld
new file mode 100644
index 0000000..f834a3a
--- /dev/null
+++ b/src/test/resources/korap-api-responses/search-der.jsonld
@@ -0,0 +1,79 @@
+{
+    "@context": "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta": {
+        "count": 1,
+        "startIndex": 50,
+        "timeout": 10000,
+        "context": "base/s:s",
+        "fields": [
+            "ID",
+            "UID",
+            "textSigle",
+            "corpusID",
+            "author",
+            "title",
+            "subTitle",
+            "textClass",
+            "pubPlace",
+            "pubDate",
+            "availability",
+            "layerInfos",
+            "docSigle",
+            "corpusSigle"
+        ],
+        "version": "0.59.3",
+        "benchmark": "2.8924209999999997 ms",
+        "totalResults": 1858,
+        "serialQuery": "tokens:s:der",
+        "itemsPerPage": 1
+    },
+    "query": {
+        "@type": "koral:token",
+        "wrap": {
+            "@type": "koral:term",
+            "key": "der",
+            "layer": "orth",
+            "match": "match:eq",
+            "foundry": "opennlp",
+            "rewrites": [
+                {
+                    "@type": "koral:rewrite",
+                    "src": "Kustvakt",
+                    "operation": "operation:injection",
+                    "scope": "foundry"
+                }
+            ]
+        }
+    },
+    "collection": {
+        "@type": "koral:doc",
+        "match": "match:eq",
+        "type": "type:regex",
+        "value": "CC-BY.*",
+        "key": "availability",
+        "rewrites": [
+            {
+                "@type": "koral:rewrite",
+                "src": "Kustvakt",
+                "operation": "operation:insertion",
+                "scope": "availability(FREE)"
+            }
+        ]
+    },
+    "matches": [
+        {
+            "snippet": "<span class=\"context-left\"><\/span><span class=\"match\"><mark>der<\/mark><\/span><span class=\"context-right\"> Verlust der Preußen an Toten und Blessierten mag 90 Mann sein.<\/span>",
+            "matchID": "match-GOE/AGA/01784-p1856-1857",
+            "UID": 0,
+            "textSigle": "GOE/AGA/01784",
+            "author": "Goethe, Johann Wolfgang von",
+            "docSigle": "GOE/AGA",
+            "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+            "pubPlace": "München",
+            "availability": "CC-BY-SA",
+            "title": "Belagerung von Mainz",
+            "pubDate": "1982",
+            "corpusSigle": "GOE"
+        }
+    ]
+}
diff --git a/src/test/resources/korap-api-responses/search-fein.jsonld b/src/test/resources/korap-api-responses/search-fein.jsonld
new file mode 100644
index 0000000..7f9070d
--- /dev/null
+++ b/src/test/resources/korap-api-responses/search-fein.jsonld
@@ -0,0 +1,110 @@
+{
+    "@context": "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta": {
+        "count": 25,
+        "startIndex": 0,
+        "timeout": 10000,
+        "context": "base/s:s",
+        "fields": [
+            "ID",
+            "UID",
+            "textSigle",
+            "corpusID",
+            "author",
+            "title",
+            "subTitle",
+            "textClass",
+            "pubPlace",
+            "pubDate",
+            "availability",
+            "layerInfos",
+            "docSigle",
+            "corpusSigle"
+        ],
+        "version": "0.59.3",
+        "benchmark": "0.157236466 s",
+        "totalResults": 3,
+        "serialQuery": "tokens:s:fein",
+        "itemsPerPage": 25
+    },
+    "query": {
+        "@type": "koral:token",
+        "wrap": {
+            "@type": "koral:term",
+            "key": "fein",
+            "layer": "orth",
+            "match": "match:eq",
+            "foundry": "opennlp",
+            "rewrites": [
+                {
+                    "@type": "koral:rewrite",
+                    "src": "Kustvakt",
+                    "operation": "operation:injection",
+                    "scope": "foundry"
+                }
+            ]
+        }
+    },
+    "collection": {
+        "@type": "koral:doc",
+        "match": "match:eq",
+        "type": "type:regex",
+        "value": "CC-BY.*",
+        "key": "availability",
+        "rewrites": [
+            {
+                "@type": "koral:rewrite",
+                "src": "Kustvakt",
+                "operation": "operation:insertion",
+                "scope": "availability(FREE)"
+            }
+        ]
+    },
+    "matches": [
+        {
+            "snippet": "<span class=\"context-left\">wir können also den untern Teil der Flamme für einen Dunst ansprechen, welcher, obgleich unendlich <\/span><span class=\"match\"><mark>fein<\/mark><\/span><span class=\"context-right\">, doch vor der dunklen Fläche sichtbar wird: er ist so fein, daß man bequem durch ihn lesen kann; dahingegen die Spitze der Flamme, welche uns die Gegenstände verdeckt, als ein selbstleuchtender Körper anzusehen ist.<\/span>",
+            "matchID": "match-GOE/AGF/00000-p15205-15206",
+            "UID": 0,
+            "textSigle": "GOE/AGF/00000",
+            "subTitle": "Didaktischer Teil",
+            "author": "Goethe, Johann Wolfgang von",
+            "docSigle": "GOE/AGF",
+            "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+            "pubPlace": "München",
+            "availability": "CC-BY-SA",
+            "title": "Zur Farbenlehre",
+            "pubDate": "1982",
+            "corpusSigle": "GOE"
+        },
+        {
+            "snippet": "<span class=\"context-left\">wir können also den untern Teil der Flamme für einen Dunst ansprechen, welcher, obgleich unendlich fein, doch vor der dunklen Fläche sichtbar wird: er ist so <\/span><span class=\"match\"><mark>fein<\/mark><\/span><span class=\"context-right\">, daß man bequem durch ihn lesen kann; dahingegen die Spitze der Flamme, welche uns die Gegenstände verdeckt, als ein selbstleuchtender Körper anzusehen ist.<\/span>",
+            "matchID": "match-GOE/AGF/00000-p15216-15217",
+            "UID": 0,
+            "textSigle": "GOE/AGF/00000",
+            "subTitle": "Didaktischer Teil",
+            "author": "Goethe, Johann Wolfgang von",
+            "docSigle": "GOE/AGF",
+            "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+            "pubPlace": "München",
+            "availability": "CC-BY-SA",
+            "title": "Zur Farbenlehre",
+            "pubDate": "1982",
+            "corpusSigle": "GOE"
+        },
+        {
+            "snippet": "<span class=\"context-left\">übrigens haben einige Pflanzen die Eigenschaft, durch künstliche Behandlung fast durchaus in ein Farbenmaterial verwandelt zu werden, das so <\/span><span class=\"match\"><mark>fein<\/mark><\/span><span class=\"context-right\">, wirksam und unendlich teilbar ist als irgendein anderes.<\/span>",
+            "matchID": "match-GOE/AGF/00000-p45002-45003",
+            "UID": 0,
+            "textSigle": "GOE/AGF/00000",
+            "subTitle": "Didaktischer Teil",
+            "author": "Goethe, Johann Wolfgang von",
+            "docSigle": "GOE/AGF",
+            "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+            "pubPlace": "München",
+            "availability": "CC-BY-SA",
+            "title": "Zur Farbenlehre",
+            "pubDate": "1982",
+            "corpusSigle": "GOE"
+        }
+    ]
+}
diff --git a/src/test/resources/korap-api-responses/search-lemma-fein.jsonld b/src/test/resources/korap-api-responses/search-lemma-fein.jsonld
new file mode 100644
index 0000000..b9f7166
--- /dev/null
+++ b/src/test/resources/korap-api-responses/search-lemma-fein.jsonld
@@ -0,0 +1,73 @@
+{
+    "@context": "http://korap.ids-mannheim.de/ns/KoralQuery/v0.3/context.jsonld",
+    "meta": {
+        "count": 1,
+        "startIndex": 0,
+        "timeout": 10000,
+        "context": "base/s:s",
+        "fields": [
+            "ID",
+            "UID",
+            "textSigle",
+            "corpusID",
+            "author",
+            "title",
+            "subTitle",
+            "textClass",
+            "pubPlace",
+            "pubDate",
+            "availability",
+            "layerInfos",
+            "docSigle",
+            "corpusSigle"
+        ],
+        "version": "0.59.3",
+        "benchmark": "10.240179 ms",
+        "totalResults": 14,
+        "serialQuery": "SpanMultiTermQueryWrapper(tokens:/tt/l:fein/)",
+        "itemsPerPage": 1
+    },
+    "query": {
+        "@type": "koral:token",
+        "wrap": {
+            "@type": "koral:term",
+            "key": "fein",
+            "foundry": "tt",
+            "layer": "l",
+            "type": "type:regex",
+            "match": "match:eq"
+        }
+    },
+    "collection": {
+        "@type": "koral:doc",
+        "match": "match:eq",
+        "type": "type:regex",
+        "value": "CC-BY.*",
+        "key": "availability",
+        "rewrites": [
+            {
+                "@type": "koral:rewrite",
+                "src": "Kustvakt",
+                "operation": "operation:insertion",
+                "scope": "availability(FREE)"
+            }
+        ]
+    },
+    "matches": [
+        {
+            "snippet": "<span class=\"context-left\">der Chemiker, welcher auf die Farben als Kriterien achtet, um die geheimern Eigenschaften körperlicher Wesen zu entdecken, hat bisher bei Benennung und Bezeichnung der Farben manches Hindernis gefunden; ja man ist nach einer näheren und <\/span><span class=\"match\"><mark>feineren<\/mark><\/span><span class=\"context-right\"> Betrachtung bewogen worden, die Farbe als ein unsicheres und trügliches Kennzeichen bei chemischen Operationen anzusehen.<\/span>",
+            "matchID": "match-GOE/AGF/00000-p4276-4277",
+            "UID": 0,
+            "textSigle": "GOE/AGF/00000",
+            "subTitle": "Didaktischer Teil",
+            "author": "Goethe, Johann Wolfgang von",
+            "docSigle": "GOE/AGF",
+            "layerInfos": "corenlp/c=spans corenlp/p=tokens corenlp/s=spans dereko/s=spans malt/d=rels marmot/m=tokens marmot/p=tokens opennlp/p=tokens opennlp/s=spans tt/l=tokens tt/p=tokens",
+            "pubPlace": "München",
+            "availability": "CC-BY-SA",
+            "title": "Zur Farbenlehre",
+            "pubDate": "1982",
+            "corpusSigle": "GOE"
+        }
+    ]
+}
