我怎样才能变换SolrQuery(SOLRJ)到网址是什么?(How can I transform

2019-07-21 08:44发布

在使用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?
标签: java solr solrj