在使用SOLRJ我想知道我怎么可以转换SolrQuery对象与SOLR查询语法的URL表示。 我试图用的ToString()方法,但它不返回正确的查询表示。 有一些其他的方式怎么办呢?
Answer 1:
我建议ClientUtils.toQueryString这件事。
@Test
public void solrQueryToURL() {
SolrQuery tmpQuery = new SolrQuery("some query");
Assert.assertEquals("?q=some+query", ClientUtils.toQueryString(tmpQuery, false));
}
在源代码HttpSolrServer你可以看到,这是使用的Solrj代码本身这个原因。
public NamedList<Object> request(final SolrRequest request, final ResponseParser processor) throws SolrServerException, IOException {
// ... other code left out
if( SolrRequest.METHOD.GET == request.getMethod() ) {
if( streams != null ) {
throw new SolrException( SolrException.ErrorCode.BAD_REQUEST, "GET can't send streams!" );
}
method = new HttpGet( baseUrl + path + ClientUtils.toQueryString( params, false ) );
// ... other code left out
}
Answer 2:
SolrJ(测试版本6.6.0),它是:
@Test
public void solrQueryToURL() {
SolrQuery query = new SolrQuery("query");
Assert.assertEquals("?q=query", query.toQueryString());
}
文章来源: How can I transform SolrQuery(SOLRJ) to URL?