diff --git a/source/net/yacy/cora/federate/solr/responsewriter/OpensearchResponseWriter.java b/source/net/yacy/cora/federate/solr/responsewriter/OpensearchResponseWriter.java
index 747c19b55..db1d72ef5 100644
--- a/source/net/yacy/cora/federate/solr/responsewriter/OpensearchResponseWriter.java
+++ b/source/net/yacy/cora/federate/solr/responsewriter/OpensearchResponseWriter.java
@@ -33,20 +33,14 @@ import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
+import java.util.Map.Entry;
import java.util.regex.Pattern;
-import net.yacy.cora.document.feed.RSSMessage;
-import net.yacy.cora.document.id.MultiProtocolURL;
-import net.yacy.cora.lod.vocabulary.DublinCore;
-import net.yacy.cora.lod.vocabulary.Geo;
-import net.yacy.cora.lod.vocabulary.YaCyMetadata;
-import net.yacy.cora.protocol.HeaderFramework;
-import net.yacy.crawler.retrieval.Response;
-import net.yacy.search.schema.CollectionConfiguration;
-import net.yacy.search.schema.CollectionSchema;
-
import org.apache.lucene.document.Document;
import org.apache.lucene.index.IndexableField;
+import org.apache.solr.client.solrj.response.QueryResponse;
+import org.apache.solr.common.SolrDocument;
+import org.apache.solr.common.SolrDocumentList;
import org.apache.solr.common.util.NamedList;
import org.apache.solr.common.util.SimpleOrderedMap;
import org.apache.solr.common.util.XML;
@@ -58,7 +52,21 @@ import org.apache.solr.search.DocIterator;
import org.apache.solr.search.DocList;
import org.apache.solr.search.SolrIndexSearcher;
-public class OpensearchResponseWriter implements QueryResponseWriter, EmbeddedSolrResponseWriter {
+import net.yacy.cora.document.feed.RSSMessage;
+import net.yacy.cora.document.id.MultiProtocolURL;
+import net.yacy.cora.lod.vocabulary.DublinCore;
+import net.yacy.cora.lod.vocabulary.Geo;
+import net.yacy.cora.lod.vocabulary.YaCyMetadata;
+import net.yacy.cora.protocol.HeaderFramework;
+import net.yacy.crawler.retrieval.Response;
+import net.yacy.search.schema.CollectionConfiguration;
+import net.yacy.search.schema.CollectionSchema;
+
+/**
+ * Solr response writer producing an OpenSearch representation in RSS 2.0 format.
+ * @see Example of OpenSearch response elements in RSS 2.0
+ */
+public class OpensearchResponseWriter implements QueryResponseWriter, SolrjResponseWriter {
// define a list of simple YaCySchema -> RSS Token matchings
private static final Map field2tag = new HashMap();
@@ -81,7 +89,7 @@ public class OpensearchResponseWriter implements QueryResponseWriter, EmbeddedSo
private String title;
public static class ResHead {
- public int offset, rows, numFound;
+ public long offset, rows, numFound;
//public int status, QTime;
//public String df, q, wt;
//public float maxScore;
@@ -107,33 +115,139 @@ public class OpensearchResponseWriter implements QueryResponseWriter, EmbeddedSo
@Override
public void write(final Writer writer, final SolrQueryRequest request, final SolrQueryResponse rsp) throws IOException {
- NamedList> values = rsp.getValues();
+ final NamedList> values = rsp.getValues();
+
+ final Object responseObj = rsp.getResponse();
assert values.get("responseHeader") != null;
assert values.get("response") != null;
- SimpleOrderedMap