Re: CloudSolrServer and LBHttpSolrServer: setting BinaryResponseParser and BinaryRequestWriter.

2012-11-20 Thread Luis Cappa Banda
Hello, Sandopolus!

First let me thank you a lot your last e-mail: it showed me the way to
resolve this bug/problem. I´ve implemented a custom BinaryLBHttpSolrServer,
as you suggested, but with your implementation I had the same problems. I
think that it is due to HttpClientUtil.createClient(null). I just modified
it a little and... it worked! My final code is:


*import org.apache.solr.client.solrj.impl.BinaryRequestWriter;*
*import org.apache.solr.client.solrj.impl.HttpSolrServer;*
*import org.apache.solr.client.solrj.impl.LBHttpSolrServer;*

*package com.example.custom.solr;*
*
*
*import java.net.MalformedURLException;*

*public class BinaryLBHttpSolrServer extends LBHttpSolrServer {*
*
*
* private static final long serialVersionUID = 3905956120804659445L;*
* *
*public BinaryLBHttpSolrServer(String[] endpoints) throws
MalformedURLException {*
*super(endpoints);*
*}*
*
*
*@Override*
*protected HttpSolrServer makeServer(String server) throws
MalformedURLException {*
*HttpSolrServer solrServer = super.makeServer(server);*
*solrServer.setRequestWriter(new BinaryRequestWriter());*
*return solrServer;*
*}*
*}*


I hope that this might help to others to solve this very big problem.


Regards,


- Luis Cappa.


2012/11/16 Sandopolus sandopo...@gmail.com

 There is a way to make CloudSolrServer use LBHttpSolrServer with the
 BinaryRequestWriter
 that is quite simple as i have had to work around this very problem.

 Create a new class which extends LBHttpSolrServer (Call it
 BinaryLBHttpSolrServer or something like that). This class will need to
 setup the LBHttpSolrServer in the Constructor and override the makeServer
 method.

 When you are creating the CloudSolrServer create the BinaryLBHttpSolrServer
 first and then pass this into the CloudSolrServer constructor with the ZH
 Host String.

 I have put the code for the BinaryLBHttpSolrServer class below and example
 code for creating the CloudSolrServer which will be using the
 BinaryRequestWriter

 Ta

 Sandy



 Example Code

 BinaryLBHttpSolrServer lbSolrServer = new BinaryLBHttpSolrServer();
 CloudSolrServer solrServer = new CloudSolrServer(zkHost, lbSolrServer);

 public class BinaryLBHttpSolrServer extends LBHttpSolrServer {

 private RequestWriter requestWriter = new BinaryRequestWriter();

 public BinaryLBHttpSolrServer()
 throws MalformedURLException {
 super(HttpClientUtil.createClient(null), new String[0]);
 }

 @Override
 protected HttpSolrServer makeServer(String server) throws
 MalformedURLException {
 HttpSolrServer solrServer = super.makeServer(server);
 solrServer.setRequestWriter(requestWriter);
 return solrServer;
 }
 }


 On 15 November 2012 16:43, Luis Cappa Banda luisca...@gmail.com wrote:

  Yes, my first attemp was with a ListString, but it didn´t work. Then I
  started to try another ways such as a String[] array with no success.
 
  Regards,
 
  - Luis Cappa.
 
  2012/11/15 Sami Siren ssi...@gmail.com
 
   hi,
  
   did you try setting your values in a List, for example ArrayList it
  should
   work when you use that even without specifying reguest-/response
 writer.
  
   --
Sami Siren
  
  
   On Thu, Nov 15, 2012 at 4:56 PM, Luis Cappa Banda luisca...@gmail.com
   wrote:
  
Hello,
   
I´ve found what It seems to be a bug
JIRA-SOLR4080
   
  
 
 https://issues.apache.org/jira/browse/SOLR-4080?focusedCommentId=13498055page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13498055

with
CloudSolrServer during atomic updates via SolrJ. Thanks to Sami I
   detected
that the problem could be solved setting BinaryResponseParser as
 Parser
   and
BinaryRequestWriter as Request writer. That workis with
 HttpSolrServer,
   but
CloudSolrServer or LBHttpSolrServer hasn´t got any method to set
 them.
   
Is there a way to set both parsers to a CloudSolrServer instance? Do
  you
know if maybe it could be configured insed solrconfig.xml?
   
Thanks a lot.
   
--
   
- Luis Cappa
   
  
 
 
 
  --
 
  - Luis Cappa
 




-- 

- Luis Cappa


Re: CloudSolrServer and LBHttpSolrServer: setting BinaryResponseParser and BinaryRequestWriter.

2012-11-16 Thread Sandopolus
There is a way to make CloudSolrServer use LBHttpSolrServer with the
BinaryRequestWriter
that is quite simple as i have had to work around this very problem.

Create a new class which extends LBHttpSolrServer (Call it
BinaryLBHttpSolrServer or something like that). This class will need to
setup the LBHttpSolrServer in the Constructor and override the makeServer
method.

When you are creating the CloudSolrServer create the BinaryLBHttpSolrServer
first and then pass this into the CloudSolrServer constructor with the ZH
Host String.

I have put the code for the BinaryLBHttpSolrServer class below and example
code for creating the CloudSolrServer which will be using the
BinaryRequestWriter

Ta

Sandy



Example Code

BinaryLBHttpSolrServer lbSolrServer = new BinaryLBHttpSolrServer();
CloudSolrServer solrServer = new CloudSolrServer(zkHost, lbSolrServer);

public class BinaryLBHttpSolrServer extends LBHttpSolrServer {

private RequestWriter requestWriter = new BinaryRequestWriter();

public BinaryLBHttpSolrServer()
throws MalformedURLException {
super(HttpClientUtil.createClient(null), new String[0]);
}

@Override
protected HttpSolrServer makeServer(String server) throws
MalformedURLException {
HttpSolrServer solrServer = super.makeServer(server);
solrServer.setRequestWriter(requestWriter);
return solrServer;
}
}


On 15 November 2012 16:43, Luis Cappa Banda luisca...@gmail.com wrote:

 Yes, my first attemp was with a ListString, but it didn´t work. Then I
 started to try another ways such as a String[] array with no success.

 Regards,

 - Luis Cappa.

 2012/11/15 Sami Siren ssi...@gmail.com

  hi,
 
  did you try setting your values in a List, for example ArrayList it
 should
  work when you use that even without specifying reguest-/response writer.
 
  --
   Sami Siren
 
 
  On Thu, Nov 15, 2012 at 4:56 PM, Luis Cappa Banda luisca...@gmail.com
  wrote:
 
   Hello,
  
   I´ve found what It seems to be a bug
   JIRA-SOLR4080
  
 
 https://issues.apache.org/jira/browse/SOLR-4080?focusedCommentId=13498055page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13498055
   
   with
   CloudSolrServer during atomic updates via SolrJ. Thanks to Sami I
  detected
   that the problem could be solved setting BinaryResponseParser as Parser
  and
   BinaryRequestWriter as Request writer. That workis with HttpSolrServer,
  but
   CloudSolrServer or LBHttpSolrServer hasn´t got any method to set them.
  
   Is there a way to set both parsers to a CloudSolrServer instance? Do
 you
   know if maybe it could be configured insed solrconfig.xml?
  
   Thanks a lot.
  
   --
  
   - Luis Cappa
  
 



 --

 - Luis Cappa



CloudSolrServer and LBHttpSolrServer: setting BinaryResponseParser and BinaryRequestWriter.

2012-11-15 Thread Luis Cappa Banda
Hello,

I´ve found what It seems to be a bug
JIRA-SOLR4080https://issues.apache.org/jira/browse/SOLR-4080?focusedCommentId=13498055page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13498055
with
CloudSolrServer during atomic updates via SolrJ. Thanks to Sami I detected
that the problem could be solved setting BinaryResponseParser as Parser and
BinaryRequestWriter as Request writer. That workis with HttpSolrServer, but
CloudSolrServer or LBHttpSolrServer hasn´t got any method to set them.

Is there a way to set both parsers to a CloudSolrServer instance? Do you
know if maybe it could be configured insed solrconfig.xml?

Thanks a lot.

-- 

- Luis Cappa


Re: CloudSolrServer and LBHttpSolrServer: setting BinaryResponseParser and BinaryRequestWriter.

2012-11-15 Thread Sami Siren
hi,

did you try setting your values in a List, for example ArrayList it should
work when you use that even without specifying reguest-/response writer.

--
 Sami Siren


On Thu, Nov 15, 2012 at 4:56 PM, Luis Cappa Banda luisca...@gmail.comwrote:

 Hello,

 I´ve found what It seems to be a bug
 JIRA-SOLR4080
 https://issues.apache.org/jira/browse/SOLR-4080?focusedCommentId=13498055page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13498055
 
 with
 CloudSolrServer during atomic updates via SolrJ. Thanks to Sami I detected
 that the problem could be solved setting BinaryResponseParser as Parser and
 BinaryRequestWriter as Request writer. That workis with HttpSolrServer, but
 CloudSolrServer or LBHttpSolrServer hasn´t got any method to set them.

 Is there a way to set both parsers to a CloudSolrServer instance? Do you
 know if maybe it could be configured insed solrconfig.xml?

 Thanks a lot.

 --

 - Luis Cappa



Re: CloudSolrServer and LBHttpSolrServer: setting BinaryResponseParser and BinaryRequestWriter.

2012-11-15 Thread Luis Cappa Banda
Yes, my first attemp was with a ListString, but it didn´t work. Then I
started to try another ways such as a String[] array with no success.

Regards,

- Luis Cappa.

2012/11/15 Sami Siren ssi...@gmail.com

 hi,

 did you try setting your values in a List, for example ArrayList it should
 work when you use that even without specifying reguest-/response writer.

 --
  Sami Siren


 On Thu, Nov 15, 2012 at 4:56 PM, Luis Cappa Banda luisca...@gmail.com
 wrote:

  Hello,
 
  I´ve found what It seems to be a bug
  JIRA-SOLR4080
 
 https://issues.apache.org/jira/browse/SOLR-4080?focusedCommentId=13498055page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-13498055
  
  with
  CloudSolrServer during atomic updates via SolrJ. Thanks to Sami I
 detected
  that the problem could be solved setting BinaryResponseParser as Parser
 and
  BinaryRequestWriter as Request writer. That workis with HttpSolrServer,
 but
  CloudSolrServer or LBHttpSolrServer hasn´t got any method to set them.
 
  Is there a way to set both parsers to a CloudSolrServer instance? Do you
  know if maybe it could be configured insed solrconfig.xml?
 
  Thanks a lot.
 
  --
 
  - Luis Cappa
 




-- 

- Luis Cappa