Sitecore.FakeDB 和 Sitecore 内容搜索与分面



以下示例,来自 Sitecore 开发人员手册中的"通过标记基于的方面来优化搜索结果"部分。但是,我正在使用 Sitecore.FakeDB 针对它编写单元测试。尝试获取结果()时出现此错误

类型"Sitecore.ContentSearch.Linq.QueryableExtensions"上没有与指定参数匹配的方法"FacetOn"。

这是代码

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;

谁能帮忙?

所以在环顾四周之后,我找到了答案。水超音速的Kevin Brechuhl实际上使用内容搜索和单元测试做了类似的事情。

内容搜索测试

所以基本上我缺少"FacetOn"的模拟实现,类似于第 79 行的 GetResults()。有趣的部分是使用 LINQ 模拟分面,我只是简单地做了

   public static IQueryable<TSource> FacetOn<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector)
    {
        return source.OrderBy(keySelector).AsQueryable();
    }

相关内容

  • 没有找到相关文章