You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by "Feak, Todd" <To...@smss.sony.com> on 2008/10/20 18:05:25 UTC

Problem implementing a BinaryQueryResponseWriter

I switched from dev group for this specific question, in case other
users have similar issue.

 

I'm implementing my own BinaryQueryResponseWriter. I've implemented the
interface and successfully plugged it into the Solr configuration.
However, the application always calls the Writer method on the interface
instead of the OutputStream method.

 

So, how does Solr determine *which* one to call? Is there a setting
somewhere I am missing maybe? 

 

For troubleshooting purposes, I am using 1.3.0 release version. If I try
using the BinaryResponseWriter (javabin) as the wt, I get the exception
indicating that Solr is doing the same thing with that writer as well.
This leads me to believe I am somehow misconfigured, OR this isn't
supported with 1.3.0 release.

 

-Todd


RE: Problem implementing a BinaryQueryResponseWriter

Posted by "Feak, Todd" <To...@smss.sony.com>.
I do have that in my config. It's existence doesn't seem to affect this
particular issue. I've tried it with and without.

-Todd

-----Original Message-----
From: Ryan McKinley [mailto:ryantxu@gmail.com] 
Sent: Monday, October 20, 2008 4:36 PM
To: solr-user@lucene.apache.org
Subject: Re: Problem implementing a BinaryQueryResponseWriter

do you have handleSelect set to true in solrconfig?

   <requestDispatcher handleSelect="true" >
    ...

if not, it would use a Servlet that is now deprecated....



On Oct 20, 2008, at 4:52 PM, Feak, Todd wrote:

> I found out what's going on.
>
> My test queries from existing Solr (not 1.3.0) that I am using have  
> *2*
> "select" in the URL. http://host:port/select/select?q=foo . Not sure
> why, but that's a separate issue. The result is that it is following a
> codepath that bypasses this decision point, and it falls back on
> something that assumes it will *not* be a BinaryQueryResponseWriter,
> even though it does correctly locate and use my new writer.
>
> The solution was to map /select/select to a new handler.
>
> Not sure if this raises another issue or not, but for me it solves the
> problem. Thanks for the help.
>
> -Todd
>
> -----Original Message-----
> From: Grant Ingersoll [mailto:gsingers@apache.org]
> Sent: Monday, October 20, 2008 1:09 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>
> I'd start by having a look at SolrDispatchFilter and put in a debug
> breakpoint at:
>
> 		QueryResponseWriter responseWriter =
> core.getQueryResponseWriter(solrReq);
>
> response.setContentType(responseWriter.getContentType(solrReq,
> solrRsp));
>                   if (Method.HEAD != reqMethod) {
>                     if (responseWriter instanceof
> BinaryQueryResponseWriter) {
>                       BinaryQueryResponseWriter binWriter =
> (BinaryQueryResponseWriter) responseWriter;
>                       binWriter.write(response.getOutputStream(),
> solrReq, solrRsp);
>                     } else {
>                       PrintWriter out = response.getWriter();
>                       responseWriter.write(out, solrReq, solrRsp);
>
>                     }
>
>
> On Oct 20, 2008, at 3:59 PM, Feak, Todd wrote:
>
>> Yes.
>>
>> I've gotten it to the point where my class is called, but the wrong
>> method on it is called.
>>
>> -Todd
>>
>> -----Original Message-----
>> From: Shalin Shekhar Mangar [mailto:shalinmangar@gmail.com]
>> Sent: Monday, October 20, 2008 12:19 PM
>> To: solr-user@lucene.apache.org
>> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>>
>> Hi Todd,
>>
>> Did you add your response writer in solrconfig.xml?
>>
>> <queryResponseWriter name="xml"
>> class="org.apache.solr.request.XMLResponseWriter" default="true"/>
>>
>> On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com>
>> wrote:
>>
>>> I switched from dev group for this specific question, in case other
>>> users have similar issue.
>>>
>>>
>>>
>>> I'm implementing my own BinaryQueryResponseWriter. I've implemented
>> the
>>> interface and successfully plugged it into the Solr configuration.
>>> However, the application always calls the Writer method on the
>> interface
>>> instead of the OutputStream method.
>>>
>>>
>>>
>>> So, how does Solr determine *which* one to call? Is there a setting
>>> somewhere I am missing maybe?
>>>
>>>
>>>
>>> For troubleshooting purposes, I am using 1.3.0 release version. If I
>> try
>>> using the BinaryResponseWriter (javabin) as the wt, I get the
>> exception
>>> indicating that Solr is doing the same thing with that writer as
>>> well.
>>> This leads me to believe I am somehow misconfigured, OR this isn't
>>> supported with 1.3.0 release.
>>>
>>>
>>>
>>> -Todd
>>>
>>>
>>
>>
>> -- 
>> Regards,
>> Shalin Shekhar Mangar.
>
> --------------------------
> Grant Ingersoll
> Lucene Boot Camp Training Nov. 3-4, 2008, ApacheCon US New Orleans.
> http://www.lucenebootcamp.com
>
>
> Lucene Helpful Hints:
> http://wiki.apache.org/lucene-java/BasicsOfPerformance
> http://wiki.apache.org/lucene-java/LuceneFAQ
>
>
>
>
>
>
>
>
>
>



Re: Problem implementing a BinaryQueryResponseWriter

Posted by Ryan McKinley <ry...@gmail.com>.
do you have handleSelect set to true in solrconfig?

   <requestDispatcher handleSelect="true" >
    ...

if not, it would use a Servlet that is now deprecated....



On Oct 20, 2008, at 4:52 PM, Feak, Todd wrote:

> I found out what's going on.
>
> My test queries from existing Solr (not 1.3.0) that I am using have  
> *2*
> "select" in the URL. http://host:port/select/select?q=foo . Not sure
> why, but that's a separate issue. The result is that it is following a
> codepath that bypasses this decision point, and it falls back on
> something that assumes it will *not* be a BinaryQueryResponseWriter,
> even though it does correctly locate and use my new writer.
>
> The solution was to map /select/select to a new handler.
>
> Not sure if this raises another issue or not, but for me it solves the
> problem. Thanks for the help.
>
> -Todd
>
> -----Original Message-----
> From: Grant Ingersoll [mailto:gsingers@apache.org]
> Sent: Monday, October 20, 2008 1:09 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>
> I'd start by having a look at SolrDispatchFilter and put in a debug
> breakpoint at:
>
> 		QueryResponseWriter responseWriter =
> core.getQueryResponseWriter(solrReq);
>
> response.setContentType(responseWriter.getContentType(solrReq,
> solrRsp));
>                   if (Method.HEAD != reqMethod) {
>                     if (responseWriter instanceof
> BinaryQueryResponseWriter) {
>                       BinaryQueryResponseWriter binWriter =
> (BinaryQueryResponseWriter) responseWriter;
>                       binWriter.write(response.getOutputStream(),
> solrReq, solrRsp);
>                     } else {
>                       PrintWriter out = response.getWriter();
>                       responseWriter.write(out, solrReq, solrRsp);
>
>                     }
>
>
> On Oct 20, 2008, at 3:59 PM, Feak, Todd wrote:
>
>> Yes.
>>
>> I've gotten it to the point where my class is called, but the wrong
>> method on it is called.
>>
>> -Todd
>>
>> -----Original Message-----
>> From: Shalin Shekhar Mangar [mailto:shalinmangar@gmail.com]
>> Sent: Monday, October 20, 2008 12:19 PM
>> To: solr-user@lucene.apache.org
>> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>>
>> Hi Todd,
>>
>> Did you add your response writer in solrconfig.xml?
>>
>> <queryResponseWriter name="xml"
>> class="org.apache.solr.request.XMLResponseWriter" default="true"/>
>>
>> On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com>
>> wrote:
>>
>>> I switched from dev group for this specific question, in case other
>>> users have similar issue.
>>>
>>>
>>>
>>> I'm implementing my own BinaryQueryResponseWriter. I've implemented
>> the
>>> interface and successfully plugged it into the Solr configuration.
>>> However, the application always calls the Writer method on the
>> interface
>>> instead of the OutputStream method.
>>>
>>>
>>>
>>> So, how does Solr determine *which* one to call? Is there a setting
>>> somewhere I am missing maybe?
>>>
>>>
>>>
>>> For troubleshooting purposes, I am using 1.3.0 release version. If I
>> try
>>> using the BinaryResponseWriter (javabin) as the wt, I get the
>> exception
>>> indicating that Solr is doing the same thing with that writer as
>>> well.
>>> This leads me to believe I am somehow misconfigured, OR this isn't
>>> supported with 1.3.0 release.
>>>
>>>
>>>
>>> -Todd
>>>
>>>
>>
>>
>> -- 
>> Regards,
>> Shalin Shekhar Mangar.
>
> --------------------------
> Grant Ingersoll
> Lucene Boot Camp Training Nov. 3-4, 2008, ApacheCon US New Orleans.
> http://www.lucenebootcamp.com
>
>
> Lucene Helpful Hints:
> http://wiki.apache.org/lucene-java/BasicsOfPerformance
> http://wiki.apache.org/lucene-java/LuceneFAQ
>
>
>
>
>
>
>
>
>
>


RE: Problem implementing a BinaryQueryResponseWriter

Posted by "Feak, Todd" <To...@smss.sony.com>.
I found out what's going on. 

My test queries from existing Solr (not 1.3.0) that I am using have *2*
"select" in the URL. http://host:port/select/select?q=foo . Not sure
why, but that's a separate issue. The result is that it is following a
codepath that bypasses this decision point, and it falls back on
something that assumes it will *not* be a BinaryQueryResponseWriter,
even though it does correctly locate and use my new writer.

The solution was to map /select/select to a new handler.

Not sure if this raises another issue or not, but for me it solves the
problem. Thanks for the help.

-Todd

-----Original Message-----
From: Grant Ingersoll [mailto:gsingers@apache.org] 
Sent: Monday, October 20, 2008 1:09 PM
To: solr-user@lucene.apache.org
Subject: Re: Problem implementing a BinaryQueryResponseWriter

I'd start by having a look at SolrDispatchFilter and put in a debug  
breakpoint at:

		QueryResponseWriter responseWriter =  
core.getQueryResponseWriter(solrReq);
                    
response.setContentType(responseWriter.getContentType(solrReq,  
solrRsp));
                   if (Method.HEAD != reqMethod) {
                     if (responseWriter instanceof  
BinaryQueryResponseWriter) {
                       BinaryQueryResponseWriter binWriter =  
(BinaryQueryResponseWriter) responseWriter;
                       binWriter.write(response.getOutputStream(),  
solrReq, solrRsp);
                     } else {
                       PrintWriter out = response.getWriter();
                       responseWriter.write(out, solrReq, solrRsp);

                     }


On Oct 20, 2008, at 3:59 PM, Feak, Todd wrote:

> Yes.
>
> I've gotten it to the point where my class is called, but the wrong
> method on it is called.
>
> -Todd
>
> -----Original Message-----
> From: Shalin Shekhar Mangar [mailto:shalinmangar@gmail.com]
> Sent: Monday, October 20, 2008 12:19 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>
> Hi Todd,
>
> Did you add your response writer in solrconfig.xml?
>
> <queryResponseWriter name="xml"
> class="org.apache.solr.request.XMLResponseWriter" default="true"/>
>
> On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com>
> wrote:
>
>> I switched from dev group for this specific question, in case other
>> users have similar issue.
>>
>>
>>
>> I'm implementing my own BinaryQueryResponseWriter. I've implemented
> the
>> interface and successfully plugged it into the Solr configuration.
>> However, the application always calls the Writer method on the
> interface
>> instead of the OutputStream method.
>>
>>
>>
>> So, how does Solr determine *which* one to call? Is there a setting
>> somewhere I am missing maybe?
>>
>>
>>
>> For troubleshooting purposes, I am using 1.3.0 release version. If I
> try
>> using the BinaryResponseWriter (javabin) as the wt, I get the
> exception
>> indicating that Solr is doing the same thing with that writer as  
>> well.
>> This leads me to believe I am somehow misconfigured, OR this isn't
>> supported with 1.3.0 release.
>>
>>
>>
>> -Todd
>>
>>
>
>
> -- 
> Regards,
> Shalin Shekhar Mangar.

--------------------------
Grant Ingersoll
Lucene Boot Camp Training Nov. 3-4, 2008, ApacheCon US New Orleans.
http://www.lucenebootcamp.com


Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ











Re: Problem implementing a BinaryQueryResponseWriter

Posted by Grant Ingersoll <gs...@apache.org>.
I'd start by having a look at SolrDispatchFilter and put in a debug  
breakpoint at:

		QueryResponseWriter responseWriter =  
core.getQueryResponseWriter(solrReq);
                    
response.setContentType(responseWriter.getContentType(solrReq,  
solrRsp));
                   if (Method.HEAD != reqMethod) {
                     if (responseWriter instanceof  
BinaryQueryResponseWriter) {
                       BinaryQueryResponseWriter binWriter =  
(BinaryQueryResponseWriter) responseWriter;
                       binWriter.write(response.getOutputStream(),  
solrReq, solrRsp);
                     } else {
                       PrintWriter out = response.getWriter();
                       responseWriter.write(out, solrReq, solrRsp);

                     }


On Oct 20, 2008, at 3:59 PM, Feak, Todd wrote:

> Yes.
>
> I've gotten it to the point where my class is called, but the wrong
> method on it is called.
>
> -Todd
>
> -----Original Message-----
> From: Shalin Shekhar Mangar [mailto:shalinmangar@gmail.com]
> Sent: Monday, October 20, 2008 12:19 PM
> To: solr-user@lucene.apache.org
> Subject: Re: Problem implementing a BinaryQueryResponseWriter
>
> Hi Todd,
>
> Did you add your response writer in solrconfig.xml?
>
> <queryResponseWriter name="xml"
> class="org.apache.solr.request.XMLResponseWriter" default="true"/>
>
> On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com>
> wrote:
>
>> I switched from dev group for this specific question, in case other
>> users have similar issue.
>>
>>
>>
>> I'm implementing my own BinaryQueryResponseWriter. I've implemented
> the
>> interface and successfully plugged it into the Solr configuration.
>> However, the application always calls the Writer method on the
> interface
>> instead of the OutputStream method.
>>
>>
>>
>> So, how does Solr determine *which* one to call? Is there a setting
>> somewhere I am missing maybe?
>>
>>
>>
>> For troubleshooting purposes, I am using 1.3.0 release version. If I
> try
>> using the BinaryResponseWriter (javabin) as the wt, I get the
> exception
>> indicating that Solr is doing the same thing with that writer as  
>> well.
>> This leads me to believe I am somehow misconfigured, OR this isn't
>> supported with 1.3.0 release.
>>
>>
>>
>> -Todd
>>
>>
>
>
> -- 
> Regards,
> Shalin Shekhar Mangar.

--------------------------
Grant Ingersoll
Lucene Boot Camp Training Nov. 3-4, 2008, ApacheCon US New Orleans.
http://www.lucenebootcamp.com


Lucene Helpful Hints:
http://wiki.apache.org/lucene-java/BasicsOfPerformance
http://wiki.apache.org/lucene-java/LuceneFAQ










RE: Problem implementing a BinaryQueryResponseWriter

Posted by "Feak, Todd" <To...@smss.sony.com>.
Yes. 

I've gotten it to the point where my class is called, but the wrong
method on it is called.

-Todd

-----Original Message-----
From: Shalin Shekhar Mangar [mailto:shalinmangar@gmail.com] 
Sent: Monday, October 20, 2008 12:19 PM
To: solr-user@lucene.apache.org
Subject: Re: Problem implementing a BinaryQueryResponseWriter

Hi Todd,

Did you add your response writer in solrconfig.xml?

<queryResponseWriter name="xml"
class="org.apache.solr.request.XMLResponseWriter" default="true"/>

On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com>
wrote:

> I switched from dev group for this specific question, in case other
> users have similar issue.
>
>
>
> I'm implementing my own BinaryQueryResponseWriter. I've implemented
the
> interface and successfully plugged it into the Solr configuration.
> However, the application always calls the Writer method on the
interface
> instead of the OutputStream method.
>
>
>
> So, how does Solr determine *which* one to call? Is there a setting
> somewhere I am missing maybe?
>
>
>
> For troubleshooting purposes, I am using 1.3.0 release version. If I
try
> using the BinaryResponseWriter (javabin) as the wt, I get the
exception
> indicating that Solr is doing the same thing with that writer as well.
> This leads me to believe I am somehow misconfigured, OR this isn't
> supported with 1.3.0 release.
>
>
>
> -Todd
>
>


-- 
Regards,
Shalin Shekhar Mangar.

Re: Problem implementing a BinaryQueryResponseWriter

Posted by Shalin Shekhar Mangar <sh...@gmail.com>.
Hi Todd,

Did you add your response writer in solrconfig.xml?

<queryResponseWriter name="xml"
class="org.apache.solr.request.XMLResponseWriter" default="true"/>

On Mon, Oct 20, 2008 at 9:35 PM, Feak, Todd <To...@smss.sony.com> wrote:

> I switched from dev group for this specific question, in case other
> users have similar issue.
>
>
>
> I'm implementing my own BinaryQueryResponseWriter. I've implemented the
> interface and successfully plugged it into the Solr configuration.
> However, the application always calls the Writer method on the interface
> instead of the OutputStream method.
>
>
>
> So, how does Solr determine *which* one to call? Is there a setting
> somewhere I am missing maybe?
>
>
>
> For troubleshooting purposes, I am using 1.3.0 release version. If I try
> using the BinaryResponseWriter (javabin) as the wt, I get the exception
> indicating that Solr is doing the same thing with that writer as well.
> This leads me to believe I am somehow misconfigured, OR this isn't
> supported with 1.3.0 release.
>
>
>
> -Todd
>
>


-- 
Regards,
Shalin Shekhar Mangar.