Solrnet分页-如何从.NET设置开始和行参数?

问题描述 投票:3回答:2

我是经过认证的.NET开发人员,负责通过Solrnet实施Solr搜索。我几乎可以在需要的地方使用它,但远没有看到客户需要的性能。

通常,我不会写,但是我找不到太多的文档。您能提供一些好的Solrnet资源吗?这是我的问题:

如何将结果集(文档)限制为25?我将数据网格限制为每页25个结果,但是即使返回1000个结果,它仍然非常慢。我猜这是因为Solr实际上会返回所有1000个recs,即使我只显示25个。这是正确的吗?看起来我的默认设置在solrconfig中设置为10,但似乎Solrnet对此进行了双向传递并获得了所有内容。

我还需要设置Start和Rows参数,以便可以进行分页-这样可以大大提高速度,对吗?

通过将以下内容添加到我的Solr.Query中,我能够弄清楚如何处理Sort参数:new QueryOptions()。AddOrder(新SolrNet.SortOrder(“ Popularity”,Order.DESC)

但是我看不到这样的东西来设置Rows或Start参数。

您能提供的任何帮助将不胜感激。谢谢-

贾斯汀

solrnet
2个回答
10
投票

QueryOptions具有很多属性,其中包括Start和Rows。如果未定义它们,SolrNet将默认获取大量文档(可能是您拥有的所有文档)。之所以这样做,是因为我认为对于新用户而言,这将是不那么令人惊讶的行为,因为它使其更像数据库。但是,为了反映Solr配置中定义的实际默认值,在下一发行版中这可能会更改。

这里是如何使用Start and Rows属性的示例:

solr.Query(yourQuery, new QueryOptions {
  Rows = 10,
  Start = 20,
});

请参阅sample app以获取更多指导。

编辑:I added this to the wiki documentation


0
投票

已弃用Start属性,可以使用StartOrCursor:

var start = new StartOrCursor.Start(0);
var options = new QueryOptions
{
    Rows = 10,
    StartOrCursor = start
}
© www.soinside.com 2019 - 2024. All rights reserved.