Sitecore搜索(SOLR和AzureSearch),按类别分组的前5个结果

时间:2018-07-11 19:39:08

标签: azure search solr sitecore

我正在尝试使用Sitecore内容搜索实施稍微复杂一些的查询,但我有些困惑。

我希望我的查询返回每个类别的前5个搜索结果项(将其作为字符串值存储在索引-category_name_s中)。例如,如果可用类别为“新闻”,“事件”和“页面”,则搜索应返回前5个事件,5个新闻和与搜索词匹配的5个页面。

使用GroupBy(category)和SelectMany Take(5)应该可以实现,但是当我执行搜索时,我得到了一个负索引异常。

我一直在阅读,我不确定LINQ to Sitecore是否支持groupBy。我还在sitecore网站上找到了一篇文章,指向SOLR扩展库中提供的“分组”功能,但实际上我在生产中使用了天蓝色搜索,如果我的搜索与搜索服务提供商无关,我希望这样做。

您有什么建议吗?有其他方法可以实现吗?

1 个答案:

答案 0 :(得分:0)

您可以使用Azure搜索查询本身来获得以上结果。

{ 
  queryType: 'full',
  search: 'Search category:"Search string" ',
  facets: [ 'resultCategory1,count:5','resultCategory2,count:5','resultCategory3,count:5'] 
}

我假设您已经创建了Azure搜索索引并且具有已发布的终结点URL。

您可以在请求的头中查询上述JSON作为请求正文以及身份验证详细信息。

希望这会有所帮助。