2013-08-19 1 views
1

Je tente d'effectuer une requête à l'aide de l'API de recherche Sitecore 7. La requête contient un certain nombre de clauses DateTime where. Dans l'exemple ci-dessous, EffectiveFrom et EffectiveTo sont des propriétés DateTime.Recherche par DateTime dans Sitecore 7 Update-1

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 hérite de Sitecore.ContentSearch.SearchTypes.SearchResultItem et se présente comme suit:

/// <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; } 

    // ... 
} 

Ce travaillait avec la version initiale de Sitecore 7, cependant, il jette maintenant un « String n'a pas été reconnu comme valide DateTime. " Erreur dans Sitecore 7 Update-1.

J'ai essayé des douzaines de configurations d'index, en plus d'ajouter et de supprimer l'attribut IndexFieldDateTimeValueConverter sur mon ScheduleSearchResultItem. J'ai confirmé via Luke que ces articles contiennent des dates au format aaaaMMdj. Cela dit, tous mes articles ont effectivefrom et effectiveto champs.

Quelqu'un d'autre a le même comportement?

Répondre

3

Cela s'est avéré être un problème localisé. Le fichier Sitecore.ContentSearch.Solr.Indexes.config a fait son chemin dans mon dossier Includes pendant le processus de mise à niveau. Je n'utilise pas Solr, et la suppression de ce fichier a résolu le problème.

+0

Cela m'est également arrivé. Le problème est qu'il n'est pas bien défini dans les instructions de mise à niveau de Sitecore. Si vous ne faites pas attention, vous allez ajouter le fichier Sitecore.ContentSearch.Solr.Indexes.config avec les autres fichiers de configuration mis à jour. Merci! –

Questions connexes