2011-08-25 30 views
3

我想尝试solr 3.3中包含的新solr collapsing/grouping,我已经尝试了solr Admin页面上的查询并且工作原理绝对正确,但是当我尝试查询我的C#代码使用solr网络,似乎没有按预期工作。这里是我如何设置帕拉姆值有没有办法使用Solr Net获得Solr分组的结果

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

回答

5

是的,你可以用分组(原名场崩)与SolrNet,它在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); 
}