Solr总是返回10行

时间:2012-05-14 12:55:54

标签: java solr

SolrQuery query = new SolrQuery();
query.setQuery("num:[20 TO 30]&fl=num&rows=50&start=10&sort=num desc");
QueryResponse rsp;
rsp = server.query(query);
SolrDocumentList returned = rsp.getResults();
System.out.println(returned.size());

为什么我总能得到10个文件? (当我在网络浏览器中通过GET尝试这个时,我得到了我想要的东西)

EDIT 我实际上发现它在以这种方式创建查询时有效:

SolrQuery query = new SolrQuery().setQuery(
            "num:[20 TO 30]").setSortField("num", ORDER.desc).setRows(5);

1 个答案:

答案 0 :(得分:3)

您可以更改requestHandler的行为。默认情况下,它返回10行。将rowsdefaults的设置更改为其他值。

<requestHandler name="..." class="...">

 <lst name="defaults">
   <str name="echoParams">explicit</str>
   <int name="rows">10</int>
   <str name="df">text</str>
 </lst>

</requestHandler>

在客户端,您正在寻找的参数是rows...&start=0&rows=10...

修改

我正在使用solrj作为客户端。 setQuery

的实施
public SolrQuery setQuery(String query) {
    this.set(CommonParams.Q, query); // whereas CommonParam.Q is 'q'
    return this;
}

这意味着您必须调用显式setRows,并且不能在URL中使用参数。