3

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

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

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

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

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

但我没有看到这样的设置行或开始参数。

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

贾斯汀

4

2 回答 2

10

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

下面是如何使用 Start 和 Rows 属性的示例:

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

查看示例应用程序以获取更多指导。

编辑:我将此添加到 wiki 文档中。

于 2010-05-05T15:18:52.040 回答
2

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

var start = new StartOrCursor.Start(0);
var options = new QueryOptions
{
    Rows = 10,
    StartOrCursor = start
}
于 2020-02-05T05:23:03.020 回答