以下示例来自"通过基于标记的方面优化搜索结果"来自 Sitecore Cookbook for Developers 。 但是,我使用Sitecore.FakeDB来编写单元测试。 尝试Getresults()
时出现此错误没有方法' FacetOn' on type" Sitecore.ContentSearch.Linq.QueryableExtensions'与指定的参数匹配。
这是代码
SearchResults<ArticleSrch> results = null;
var query = searchContext.GetQueryable<ArticleSrch>()
.Where<ArticleSrch>(i =>(i.TemplateName!=null && i.TemplateName.ToString().Equals("Base Article")))
;
query = query.FacetOn(facet => facet.Tags);
results = query.GetResults();
return results;
有人可以帮忙吗?
答案 0 :(得分:0)
所以在环顾四周之后,我找到了答案。 aquasonic的Kevin Brechuhl实际上使用内容搜索与单元测试做了类似的事情。
所以基本上我错过了&#34; FacetOn&#34;的模拟实现,类似于第79行的GetResults()。有趣的部分是使用LINQ来模拟facetting,我只是做了
public static IQueryable<TSource> FacetOn<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector)
{
return source.OrderBy(keySelector).AsQueryable();
}