2015-06-30 2 views
0

Я хочу запросить шаблон элементов контента в Sitecore, чтобы он возвращал результаты, если шаблон элемента соответствует любому из TemplateID, включенному в переменную templates. Переменная templates содержит список шаблонов, разделенных трубами, для поиска в элементе контента.Шаблон поискового запроса Sitecore

Я пробовал несколько разных методов, но ничего не дал результат, который я ищу. Ниже приведен один такой пример. Я также попытался разделить каждый шаблон, используя разделение на строку шаблонов, и запустив цикл foreach по нижнему.

var multiSearchParam = new MultiFieldSearchParam 
{ 
    Database = dbName, 
    InnerCondition = QueryOccurance.Should 
}; 
multiSearchParam.TemplateIds = templates; 
parameters.Add(multiSearchParam); 

Я чувствую, что есть проблема с условиями я использую .... Когда я бег это с помощью всего одного шаблона ID он работает как шарм, так что, кажется, проблема с кратным поиском информации шаблоны.

У кого-нибудь есть предложения по поводу того, что я делаю неправильно?

+2

дубликата http://stackoverflow.com/questions/11809520/multiple-templateids-not-working-in-sitecores-advanced-database -crawler и http://stackoverflow.com/questions/9715982/can-we-assign-more-then-one-template-id-in-templateid-like-we-do-in-relatedid? –

+0

Я проголосовал за закрытие, спасибо за ссылки! –

ответ

0

Используя Sitecore ContentSearch, это то, как я решить:

Expression<Func<SearchResultItem, bool>> predicate = PredicateBuilder.True<SearchResultItem>(); 
      predicate = predicate.Or(p => p.TemplateName.Equals("News")); 
      predicate = predicate.Or(p => p.TemplateName.Equals("Page")); 

      IEnumerable<SearchResultItem> results = _searchContext 
       .GetQueryable<SearchResultItem>() 
       .Where(predicate); 
Смежные вопросы