有没有办法使用Solr Net获得solr分组的结果

时间:2011-08-25 05:39:03

标签: solrnet

我想尝试solr 3.3中包含的新solr折叠/分组,我在solr管理页面上尝试了查询,并且工作正常但当我尝试使用solr net查询我的c#代码时似乎不起作用预期。以下是我如何设置参数值

    options.ExtraParams = new List<KeyValuePair<string, string>>
    {
        new KeyValuePair<string,string>("group","true"),
        new KeyValuePair<string,string>("group.field","AuthorID"),
    };

1 个答案:

答案 0 :(得分:5)

是的,您可以使用SolrNet进行分组(以前称为Field Collapsing),它是在SolrNet 0.4.0 alpha1版本中引入的。以下是作者博客中关于添加此支持的release notes。因此,您需要从Google Code(二进制文件)或GitHub(来源)获取该版本(或更高版本)。此处还有一个使用源代码中单元测试分组的示例 - Grouping Tests

public void FieldGrouping()
{
    var solr = ServiceLocator.Current.GetInstance<ISolrBasicOperations<Product>>();
    var results = solr.Query(SolrQuery.All, new QueryOptions
    {
        Grouping = new GroupingParameters()
        {
            Fields = new [] { "manu_exact" },
            Format = GroupingFormat.Grouped,
            Limit = 1,
        }
    });

    Console.WriteLine("Group.Count {0}", results.Grouping.Count);
    Assert.AreEqual(1, results.Grouping.Count);
    Assert.AreEqual(true, results.Grouping.ContainsKey("manu_exact"));
    Assert.GreaterThanOrEqualTo(results.Grouping["manu_exact"].Groups.Count,1);
}