2016-07-06 4 views
0

Sitecore Cookbook for Developers에서 "태그 지정 기반 패싯으로 검색 결과 구체화"섹션의 다음 예제를 참조하십시오. 그러나, 나는 단위 테스트를 작성하기 위해 Sitecore.FakeDB을 사용하고 있습니다. Getresults()Sitecore.FakeDB 및 Sitecore 콘텐츠 검색 패싯으로 검색

이 지정된 인수와 일치 형 "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; 

는 사람이 도와 수 있습니까?

+0

ca이 페이지에서 마음에 드는 정보를 찾으십시오. https://github.com/sergeyshushlyapin/Sitecore.FakeDb/wiki/Content-Search –

+0

예. 나는 그 섹션에서 그 내용 검색 기술을 사용했다. 나의 접근법은 책과 Git wiki의 내용 검색에서 기술을 태깅하는 것, 둘 다의 혼합이었다. 그러나 실제 문제는 IQueryable 확장의 "FacetOn"기능 때문이었습니다. – D0cNet

답변

0

그래서 둘러보고 후에 내가 대답을 발견했다. aquasonic의 Kevin Brechuhl은 실제로 Unit Testing과 함께 Content Search를 사용하여 비슷한 작업을 수행했습니다.

ContentSearchTest

그래서 기본적으로 나는 단순히

public static IQueryable<TSource> FacetOn<TSource, TKey>(this IQueryable<TSource> source, Expression<Func<TSource, TKey>> keySelector) 
    { 
     return source.OrderBy(keySelector).AsQueryable(); 
    } 
로했다 facetting을 시뮬레이션하기 위해 LINQ를 사용하여 한 라인 (79) 흥미로운 부분에서 GetResults()과 유사 "FacetOn"의 모의 구현을 누락했다