Without breaking the existing stuff we can add another interface
BinaryQueryResponse extends QueryResponseWriter{
public void write(OutputStream out, SolrQueryRequest request,
SolrQueryResponse response) throws IOException;
}
and in the SolrDispatchFilter do something like this
QueryResponseWriter responseWriter = core.getQueryResponseWriter(solrReq);
if (responseWriter instanceof BinaryQueryResponse ) {
BinaryQueryResponse binaryResp = (Object)
responseWriter;
binaryResp.write(response.getOutputStream(), solrReq, solrRsp);
} else {
responseWriter.write(response.getWriter(), solrReq, solrRsp);}
--Noble
On Fri, Feb 22, 2008 at 8:05 PM, Grant Ingersoll <[EMAIL PROTECTED]> wrote:
> The DispatchFilter could probably be modified to have the option of
> using the ServletOutputStream instead of the Writer. It would take
> some doing to maintain the proper compatibility, but it can be done, I
> think. Maybe we could have a /binary path or something along those
> lines and SolrJ could use that. QueryResponseWriter could be extended
> to have a write method that takes an OutputStream. Caveat: I
> haven't fully investigated this, but I do believe it makes sense for
> SolrJ to use a binary format by default. The other thing it should do
> is make sure, when sending/receiving XML is that the XML is as "tight"
> as possible, i.e. minimal whitespace, etc.
>
> Just thinking out loud,
> Grant
>
> On Feb 22, 2008, at 8:29 AM, Noble Paul നോബിള്
>
>
> नोब्ळ् wrote:
>
> > The API forbids use of any non-text format.
> >
> > The QueryResponseWriter's write() method can take only a Writer. So we
> > cannot write any binary stream into that.
> >
> > --Noble
> >
> > On Fri, Feb 22, 2008 at 12:30 AM, Walter Underwood
> > <[EMAIL PROTECTED]> wrote:
> >> Python marshal format is worth a try. It is binary and can represent
> >> the same data as JSON. It should be a good fit to Solr.
> >>
> >> We benchmarked that against XML several years ago and it was 2X
> >> faster.
> >> Of course, XML parsers are a lot faster now.
> >>
> >> wunder
> >>
> >>
> >>
> >> On 2/21/08 10:50 AM, "Grant Ingersoll" <[EMAIL PROTECTED]> wrote:
> >>
> >>> XML can be a problem when it is really lengthy (lots of results,
> >>> large
> >>> results) such that a binary format could be useful in certain cases
> >>> where we control both ends of the pipe (i.e. SolrJ.) I've seen apps
> >>> that deal with really large files wrapped in XML where the XML
> >>> parsing
> >>> takes a significant amount of time as compared to a more compact
> >>> binary format.
> >>>
> >>> I think it at least warrants profiling/testing.
> >>>
> >>> -Grant
> >>>
> >>> On Feb 21, 2008, at 12:07 PM, Noble Paul നോബിള്
> >>> नोब्ळ् wrote:
> >>>
> >>>> hi,
> >>>> The format over the wire is not of great significance because it
> >>>> gets
> >>>> unmarshalled into the corresponding language object as soon as it
> >>>> comes out
> >>>> of the wire. I would say XML/JSON should meet 99% of the
> >>>> requirements
> >>>> because all the platforms come with an unmarshaller for both of
> >>>> these.
> >>>>
> >>>> But,If it can offer good performance improvement it is worth
> >>>> trying.
> >>>> --Noble
> >>>>
> >>>> On Thu, Feb 21, 2008 at 3:41 AM, alexander lind <[EMAIL PROTECTED]>
> >>>> wrote:
> >>>>
> >>>>> On Feb 20, 2008, at 9:31 AM, Doug Steigerwald wrote:
> >>>>>
> >>>>>> A few months back I wrote a YAML update request handler to see
> >>>>>> if we
> >>>>>> could post documents faster than with XMl. We did see some small
> >>>>>> speed improvements (didn't write down the numbers), but the
> >>>>>> hacked
> >>>>>> together code was probably making it slower as well. Not sure if
> >>>>>> there are faster YAML libraries out there either.
> >>>>>>
> >>>>>> We're not actually using it, since it was just a small proof of
> >>>>>> concept type of project, but is this anything people might be
> >>>>>> interested in?
> >>>>>>
> >>>>>
> >>>>> Out of simple preference I would love to see a YAML request
> >>>>> handler
> >>>>> just because I like the YAML format. If its also faster than XML,
> >>>>> then
> >>>>> all the better.
> >>>>>
> >>>>> Cheers
> >>>>> Alec
> >>>>>
> >>>>
> >>>>
> >>>>
> >>>> --
> >>>> --Noble Paul
> >>>
> >>> --------------------------
> >>> Grant Ingersoll
> >>> http://www.lucenebootcamp.com
> >>> Next Training: April 7, 2008 at ApacheCon Europe in Amsterdam
> >>>
> >>> Lucene Helpful Hints:
> >>> http://wiki.apache.org/lucene-java/BasicsOfPerformance
> >>> http://wiki.apache.org/lucene-java/LuceneFAQ
> >>>
> >>>
> >>>
> >>>
> >>>
> >>
> >>
> >
> >
> >
> > --
> > --Noble Paul
>
> --------------------------
> Grant Ingersoll
> http://www.lucenebootcamp.com
> Next Training: April 7, 2008 at ApacheCon Europe in Amsterdam
>
> Lucene Helpful Hints:
> http://wiki.apache.org/lucene-java/BasicsOfPerformance
> http://wiki.apache.org/lucene-java/LuceneFAQ
>
>
>
>
>
>
--
--Noble Paul