Keep rewrites in Meta (fixes #188)

Change-Id: I0eaf2663acdb57c9936fa60630523677c1e51993
diff --git a/Changes b/Changes
index db65563..068d9b0 100644
--- a/Changes
+++ b/Changes
@@ -1,3 +1,6 @@
+0.64.2 2025-06-18
+    - [bugfix] Restore rewrites in Meta. (diewald)
+
 0.64.1 2025-05-26
     - [bugfix] Ignore line endings in indexer tests. (diewald)
     - [bugfix] Correctly cleanup test directories. (diewald)
diff --git a/pom.xml b/pom.xml
index 34d6311..1bcebe5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -35,7 +35,7 @@
 
   <groupId>de.ids-mannheim.korap.krill</groupId>
   <artifactId>Krill</artifactId>
-  <version>0.64.1</version>
+  <version>0.64.2</version>
   <packaging>jar</packaging>
 
   <name>Krill</name>
diff --git a/src/main/java/de/ids_mannheim/korap/KrillMeta.java b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
index b1636fb..b7a174d 100644
--- a/src/main/java/de/ids_mannheim/korap/KrillMeta.java
+++ b/src/main/java/de/ids_mannheim/korap/KrillMeta.java
@@ -34,6 +34,8 @@
     private ArrayList<String> fields;
     HashSet<Integer> highlights;
 
+    private JsonNode rewrites;
+    
     // Timeout search after milliseconds
     private long timeout = (long) 120_000;
     // private long timeoutStart = Long.MIN_VALUE;
@@ -160,6 +162,9 @@
         if (json.has("context"))
             this.context.fromJson(json.get("context"));
 
+        if (json.has("rewrites"))
+            this.rewrites = json.get("rewrites");
+        
         // Defined highlights
         if (json.has("highlight")) {
 
@@ -270,6 +275,11 @@
     };
 
 
+    public JsonNode getRewrites () {
+        return this.rewrites;
+    };    
+
+    
     public KrillMeta setContext (SearchContext context) {
         this.context = context;
         return this;
@@ -424,6 +434,9 @@
             json.set("highlight", highlightNode);
         };
 
+        if (this.getRewrites() != null)
+            json.set("rewrites", this.getRewrites());
+        
         return json;
     };
 };
diff --git a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
index 44db7e1..8d85d78 100644
--- a/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
+++ b/src/test/java/de/ids_mannheim/korap/search/TestMetaFields.java
@@ -151,6 +151,10 @@
         assertEquals("match-GOE_AGX.00002-p7-8",
                 res.at("/matches/0/matchID").asText());
 
+        assertFalse(res.at("/meta/rewrites").isMissingNode());
+        assertEquals("Kustvakt", res.at("/meta/rewrites/0/src").asText());
+
+        
         // All fields
         jsonString = getJsonString(getClass()
                 .getResource("/queries/metas/fields_all.jsonld").getFile());
@@ -182,6 +186,7 @@
         // assertEquals("372-377", res.at("/matches/0/pages").asText());
         assertEquals("match-GOE_AGX.00002-p7-8",
                 res.at("/matches/0/matchID").asText());
+        assertTrue(res.at("/meta/rewrites").isMissingNode());
 
 
         // @All fields
diff --git a/src/test/resources/queries/metas/fields_no.jsonld b/src/test/resources/queries/metas/fields_no.jsonld
index 969f95e..2faa43a 100644
--- a/src/test/resources/queries/metas/fields_no.jsonld
+++ b/src/test/resources/queries/metas/fields_no.jsonld
@@ -3,7 +3,16 @@
   "announcements" : [],
   "errors" : [],
   "meta" : {
-    "count":9
+    "count":9,
+    "rewrites":[
+      {
+       "@type" : "koral:rewrite",
+        "src" : "Kustvakt",
+        "origin" : "Kustvakt",
+        "scope" : "count",
+        "source" : 10
+      }
+    ]
   },
   "query" : {
     "@type" : "koral:token",