Solrnet分页 - 如何从.NET设置Start和Rows参数?

时间:2010-05-05 05:19:25

标签: solrnet

我是一名认证.NET开发人员,负责通过Solrnet实施Solr搜索。我已经接近将它放在我需要的地方,但远远没有看到我的客户需要的性能。

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

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

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

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

但是我没有看到这样的设置Rows或Start参数。

非常感谢您提供的任何帮助。谢谢 -

贾斯汀

2 个答案:

答案 0 :(得分:9)

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

以下是如何使用“开始”和“行”属性的示例:

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

请查看sample app以获取更多指导。

编辑:I added this to the wiki documentation

答案 1 :(得分:0)

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

var start = new StartOrCursor.Start(0);
var options = new QueryOptions
{
    Rows = 10,
    StartOrCursor = start
}