IEnumerable 계산 된 인덱스 필드를 쿼리하는 데 문제가 있습니다. 나는 Sitecore 7.2 upd2, Lucene, ContentSearch 및 PredicateBuilder를 사용합니다.Sitecore 콘텐츠 검색 PredicateBuilder와 IEnumerable
제품 섹션에서 사용할 수있는 제품 가격을 문의하려고합니다. 사용 가능한 제품을 찾기 위해 일부 무거운 Logic이 있으므로 계산 된 필드에 사용 가능한 모든 제품 가격을 입력하기로 결정했습니다. Unfortuantelly 내가 PredicateBuilder 가격 목록을 쿼리 할 수없는 것 같습니다. 인덱스 설정에
predicate = predicate.And(p => p.Prices.Any(x => x >= priceFrom && x <= priceTo));
필드 구성 :
<field fieldName="Prices" storageType="YES" indexType="TOKENIZED" vectorType="NO" boost="1f" type="System.Collections.Generic.IEnumerable`1[System.Int32]" settingType="Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider" />
을하고 내 오류입니다 :
내 쿼리는 다음과 같습니다
Invalid Method Call Argument Type: Field - FieldNode - Field: prices - System.Collections.Generic.IEnumerable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]. Only constant arguments is supported.
어떤 아이디어?
그래 그게 것 같다, 나는 또한 일반 .Count()을 시도하고 있었다 - 행운과 함께. 그래서 IEnumerable에 대한 간단한 작업을 여기서는 할 수없는 것처럼 보입니다. –
흠 .. 아마 Any()의 실제 호출과 내가 말한 람다가 아닙니다. – herskinduk