solr-4.9.0:solrj如何删除"隐式路由器"有效?

时间:2014-07-14 02:07:38

标签: router solrj implicit documents

我使用"隐式路由器"在创建我的集合时,我使用SolrJ访问Solr。在这种模式下,我通过提供名为 route 的参数来执行查询请求。但是,如果我想调用CloudSolrServer的deleteByQuery()方法,我该如何设置此参数?我只想将我的请求传递给正确的碎片,而不是所有碎片,我不知道如何获得它。

1 个答案:

答案 0 :(得分:2)

幸运的是,我已经找到了答案。当我阅读CloudSolrServer的源代码时,我创建了以下方法:


public UpdateResponse deleteByQuery(String query) throws SolrServerException, IOException {
    return new UpdateRequest().deleteByQuery( query ).process( this );
}

UpdateResponse类有一个方法setParam()。

所以,最终的代码如下:


UpdateRequest deleteRequest = new UpdateRequest();
deleteRequest.setParam("_route_", shardId);
UpdateResponse reponse = deleteRequest.deleteByQuery(delQuery).process(cloudSolrServer_);

我已经尝试过,发现没有问题。