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)
. . .

Reply via email to