Търсене по DateTime в Sitecore 7 Update-1

Опитвам се да изпълня заявка с помощта на API за търсене на Sitecore 7. Заявката съдържа няколко клаузи DateTime where. В примера по-долу EffectiveFrom и EffectiveTo са свойства DateTime.

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)
    {
        //...
    }
}

ScheduleSearchResultItem наследява от Sitecore.ContentSearch.SearchTypes.SearchResultItem и изглежда по следния начин:

/// <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, но сега извежда грешка „Низът не беше разпознат като валидна дата и час.“ в Sitecore 7 Update-1.

Опитах десетки конфигурации на индекси, както и добавяне и премахване на атрибута IndexFieldDateTimeValueConverter на моя ScheduleSearchResultItem. Потвърдих чрез Luke, че тези елементи съдържат дати във формат ггггММдд. Въпреки това не всички мои артикули имат полета effective from и effective to.

Някой друг да изпитва същото поведение?


person Derek Hunziker    schedule 19.08.2013    source източник


Отговори (1)


Оказа се, че това е локализиран проблем. Файлът Sitecore.ContentSearch.Solr.Indexes.config по някакъв начин е попаднал в моята папка Includes по време на процеса на надграждане. Не използвам Solr и премахването на този файл реши проблема.

person Derek Hunziker    schedule 20.08.2013
comment
Това току-що се случи и на мен. Проблемът е, че не е добре дефиниран в инструкциите за надграждане на Sitecore. Ако не обръщате пълно внимание, тогава ще добавите файла Sitecore.ContentSearch.Solr.Indexes.config заедно с другите актуализирани конфигурационни файлове. Благодаря! - person Scott Mulligan; 09.10.2014