The thing is that you are trying to introduce custom xml tags which
require changing the response writers. Instead, if you just used
nested maps/lists or SimpleOrderedMap/NamedList then every response
writer should be able to just directly write the output. Nesting is
not a problem.

On Fri, Aug 7, 2015 at 6:09 PM, Dmitry Kan <solrexp...@gmail.com> wrote:
> Shawn:
>
> thanks, we found an intermediate solution by serializing our data structure
> using string representation, perhaps less optimal than using binary format
> directly.
>
> In the original router with JavaBinCodec we found, that
> BinaryResponseWriter should also be extended. But the following method is
> static and does allow extending:
>
> public static NamedList<Object> getParsedResponse(SolrQueryRequest
> req, SolrQueryResponse rsp) {
>   try {
>     Resolver resolver = new Resolver(req, rsp.getReturnFields());
>
>     ByteArrayOutputStream out = new ByteArrayOutputStream();
>     new JavaBinCodec(resolver).marshal(rsp.getValues(), out);
>
>     InputStream in = new ByteArrayInputStream(out.toByteArray());
>     return (NamedList<Object>) new JavaBinCodec(resolver).unmarshal(in);
>   }
>   catch (Exception ex) {
>     throw new RuntimeException(ex);
>   }
> }
>
>
>
> Shalin:
>
> We needed new data structure in highlighter with more nested levels,
> than just one. Something like this (in xml representation):
>
> <lst name="highlighting">
>   <lst name="doc1">
>     <arr name="snippets">
>       <snippet>
>
>          <id>id1</id>
>
>          <contents>Snippet text goes here</contents>
>
>          <other params/>
>
>       </snippet>
>
>     </arr>
>
>
>   </lst></lst>
>
> Can this be modelled with existing types?
>
>
> On Thu, Aug 6, 2015 at 9:47 PM, Shalin Shekhar Mangar <
> shalinman...@gmail.com> wrote:
>
>> What do you mean by a custom format? As long as your custom component
>> is writing primitives or NamedList/SimpleOrderedMap or collections
>> such as List/Map, any response writer should be able to handle them.
>>
>> On Wed, Aug 5, 2015 at 5:08 PM, Dmitry Kan <solrexp...@gmail.com> wrote:
>> > Hello,
>> >
>> > Solr: 5.2.1
>> > class: org.apache.solr.common.util.JavaBinCodec
>> >
>> > I'm working on a custom data structure for the highlighter. The data
>> > structure is ready in JSON and XML formats. I need also JavaBin format.
>> The
>> > data structure is already made serializable by extending the
>> WritableValue
>> > class (methods write and resolve).
>> >
>> > To receive the custom format on the client via solrj api, the data
>> > structure needs to be parseable by JavaBinCodec. Is this correct
>> > assumption? Can we introduce the custom data structure consumer on the
>> > solrj api without complete overhaul of the api? Is there plugin framework
>> > such that JavaBinCodec is extended and used for the new data structure?
>> >
>> >
>> >
>> > --
>> > Dmitry Kan
>> > Luke Toolbox: http://github.com/DmitryKey/luke
>> > Blog: http://dmitrykan.blogspot.com
>> > Twitter: http://twitter.com/dmitrykan
>> > SemanticAnalyzer: www.semanticanalyzer.info
>>
>>
>>
>> --
>> Regards,
>> Shalin Shekhar Mangar.
>>
>
>
>
> --
> Dmitry Kan
> Luke Toolbox: http://github.com/DmitryKey/luke
> Blog: http://dmitrykan.blogspot.com
> Twitter: http://twitter.com/dmitrykan
> SemanticAnalyzer: www.semanticanalyzer.info



-- 
Regards,
Shalin Shekhar Mangar.

Reply via email to