我是一名认证.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参数。
非常感谢您提供的任何帮助。谢谢 -
贾斯汀
答案 0 :(得分:9)
QueryOptions有很多属性,其中包括Start和Rows。如果它们没有定义,SolrNet将默认获取大量文档(可能是您拥有的所有文档)。我之所以这样做,是因为我认为对于新用户来说这将是一个不那么令人惊讶的行为,因为它使它更像数据库。但是,这可能会在下一个版本中发生变化,以反映Solr配置中定义的实际默认值。
以下是如何使用“开始”和“行”属性的示例:
solr.Query(yourQuery, new QueryOptions {
Rows = 10,
Start = 20,
});
请查看sample app以获取更多指导。
答案 1 :(得分:0)
已弃用Start属性,可以使用StartOrCursor:
var start = new StartOrCursor.Start(0);
var options = new QueryOptions
{
Rows = 10,
StartOrCursor = start
}