Instead of using SolrQuery to make a query request, you can use the
UpdateRequest class. Something like the following should do the same
as your intended request:

CloudSolrClient solr = new
CloudSolrClient("127.0.0.1:2181,127.0.0.2:2181, 127.0.0.3:218/solr1");
solr.setIdField("cust");
solr.setDefaultCollection("asset");
UpdateRequest update = new UpdateRequest();
update.setParam("_route_", "b!");
update.setParam("json.filter", "cust:b");
update.deleteByQuery("cust:b");
update.setAction(AbstractUpdateRequest.ACTION.OPTIMIZE, true, true);
UpdateResponse response = update.process(solr);
System.out.println(response.toString());

On Tue, Oct 20, 2015 at 6:41 PM, Troy Collinsworth
<troycollinswo...@gmail.com> wrote:
> Is it possible to execute the following via CloudSolrClient? It works via
> curl.
>
>
> curl 
> 'http://localhost:8983/solr/asset/update/json?_route_="b!"&json.filter="cust:b";'
> -H 'Content-type:application/json' -d
> '{params:{},"delete":{"query":"cust:b"},"commit": {},"optimize": {}}'
>
>
>
> I've tried the following, but the error indicates the URL path did not end
> in /update/json. How do you set that via CloudSolrClient API?
>
> @Test
> public void test() throws SolrServerException, IOException {
> CloudSolrClient solr = new CloudSolrClient("127.0.0.1:2181,127.0.0.2:2181,
> 127.0.0.3:218/solr1");
> solr.setIdField("cust");
> solr.setDefaultCollection("asset");
> SolrQuery q = new SolrQuery();
> q.setParam("_route_", "b!");
> q.setParam("json.filter", "cust:b");
> q.setQuery("{params:{},\"delete\":{\"query\":\"cust:b\"},\"commit\":
> {},\"optimize\": {}}");
> QueryResponse r = solr.query(q);
> System.out.println(r.toString());
> }
>
>
> org.apache.solr.client.solrj.impl.HttpSolrClient$RemoteSolrException: Error
> from server at http://127.0.1.1:8984/solr/asset:
> org.apache.solr.search.SyntaxError: Cannot parse
> '{params:{},"delete":{"query":"cust:b"},"commit": {},"optimize": {}}':
> Encountered " "}" "} "" at line 1, column 9.
> Was expecting one of:
>     "TO" ...
>     <RANGE_QUOTED> ...
>     <RANGE_GOOP> ...
>
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.executeMethod(HttpSolrClient.java:560)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:234)
> at
> org.apache.solr.client.solrj.impl.HttpSolrClient.request(HttpSolrClient.java:226)
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.doRequest(LBHttpSolrClient.java:376)
> at
> org.apache.solr.client.solrj.impl.LBHttpSolrClient.request(LBHttpSolrClient.java:328)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.sendRequest(CloudSolrClient.java:1098)
> at
> org.apache.solr.client.solrj.impl.CloudSolrClient.requestWithRetryOnStaleState(CloudSolrClient.java:869)
> . . .



-- 
Regards,
Shalin Shekhar Mangar.

Reply via email to