2013-08-19 1 views
1

Sitecore 7 검색 API를 사용하여 쿼리를 수행하려고합니다. 이 쿼리에는 여러 DateTime where 절이 들어 있습니다. 아래 예제에서 EffectiveFrom 및 EffectiveTo는 DateTime 속성입니다.Sitecore 7 Update-1에서 DateTime으로 검색

/// <summary> 
/// Search result item for event schedules 
/// </summary> 
public class ScheduleSearchResultItem : SearchResultItem 
{ 
    /// <summary> 
    /// EffectiveFrom field 
    /// </summary> 
    [TypeConverter(typeof(IndexFieldDateTimeValueConverter))] 
    [IndexField("effectivefrom")] 
    public DateTime EffectiveFrom { get; set; } 

    /// <summary> 
    /// EffectiveTo field 
    /// </summary> 
    [TypeConverter(typeof(IndexFieldDateTimeValueConverter))] 
    [IndexField("effectiveto")] 
    public DateTime EffectiveTo { get; set; } 

    // ... 
} 

이 Sitecore 7의 초기 릴리스와 함께 일하고, 그러나 지금 는 "문자열이 유효한 것으로 인식되지 않았습니다 발생 :

var index = ContentSearchManager.GetIndex("sitecore_web_index"); 
using (var context = index.CreateSearchContext()) 
{ 
    var schedules = context.GetQueryable<ScheduleSearchResultItem>() 
          .Where(item => item.EffectiveFrom <= DateTime.Now) 
          .Where(item => item.EffectiveTo >= DateTime.Now); 

    foreach (var schedule in schedules) 
    { 
     //... 
    } 
} 

ScheduleSearchResultItemSitecore.ContentSearch.SearchTypes.SearchResultItem에서 상속과는 다음과 같습니다 날짜 시간." Sitecore 7 Update-1에서 오류가 발생했습니다.

수십 개의 색인 구성을 시도하고 ScheduleSearchResultItemIndexFieldDateTimeValueConverter 특성을 추가 및 제거했습니다. 나는 Luke를 통해 이러한 항목에 yyyyMMdd 형식의 날짜가 포함되어 있음을 확인했습니다. 즉, 내 항목 모두가 유효하지 않습니다.효과가 개입니다.

다른 사용자에게도 동일한 문제가 발생합니까?

답변

3

이 문제는 현지화 된 것으로 판명되었습니다. Sitecore.ContentSearch.Solr.Indexes.config 파일은 어떻게 든 내 업그레이드 프로세스 중에 내 Includes 폴더에 저장됩니다. Solr을 사용하지 않고이 파일을 제거하면 문제가 해결됩니다.

+0

이것은 나에게도 일어났습니다. 문제는 Sitecore 업그레이드 지침에 잘 정의되어 있지 않다는 것입니다. 주의를 기울이지 않으면 Sitecore.ContentSearch.Solr.Indexes.config 파일을 다른 업데이트 된 구성 파일과 함께 추가합니다. 감사! –