我正在尝试使用Sitecore内容搜索实施稍微复杂一些的查询,但我有些困惑。
我希望我的查询返回每个类别的前5个搜索结果项(将其作为字符串值存储在索引-category_name_s中)。例如,如果可用类别为“新闻”,“事件”和“页面”,则搜索应返回前5个事件,5个新闻和与搜索词匹配的5个页面。
使用GroupBy(category)和SelectMany Take(5)应该可以实现,但是当我执行搜索时,我得到了一个负索引异常。
我一直在阅读,我不确定LINQ to Sitecore是否支持groupBy。我还在sitecore网站上找到了一篇文章,指向SOLR扩展库中提供的“分组”功能,但实际上我在生产中使用了天蓝色搜索,如果我的搜索与搜索服务提供商无关,我希望这样做。
您有什么建议吗?有其他方法可以实现吗?
答案 0 :(得分:0)
您可以使用Azure搜索查询本身来获得以上结果。
{
queryType: 'full',
search: 'Search category:"Search string" ',
facets: [ 'resultCategory1,count:5','resultCategory2,count:5','resultCategory3,count:5']
}
我假设您已经创建了Azure搜索索引并且具有已发布的终结点URL。
您可以在请求的头中查询上述JSON作为请求正文以及身份验证详细信息。
希望这会有所帮助。