Поиск по дате и времени в 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. Через Люка я подтвердил, что эти элементы действительно содержат даты в формате ггггММдд. Тем не менее, не все мои элементы имеют поля Effectivefrom и Effectiveto.

Кто-нибудь еще испытывает такое же поведение?


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


Ответы (1)


Оказалось, что это локальная проблема. Файл Sitecore.ContentSearch.Solr.Indexes.config каким-то образом попал в мою папку «Включает» в процессе обновления. Я не использую Solr, и удаление этого файла решило проблему.

person Derek Hunziker    schedule 20.08.2013
comment
Это случилось и со мной. Проблема в том, что это не очень четко определено в инструкциях по обновлению Sitecore. Если вы не уделяете должного внимания, вы добавите файл Sitecore.ContentSearch.Solr.Indexes.config вместе с другими обновленными файлами конфигурации. Спасибо! - person Scott Mulligan; 09.10.2014