2013-08-01 2 views
1

Как я могу найти несколько слов с Sitecore 7? Я пробовал с Содержит для каждого слова, но не работает нормально, и я думаю, что производительность это не очень хорошо.Sitecore Search Несколько слов

ответ

3

вы можете пользователь PredicateBuilder для этого выпуска:

Код будет что-то вроде:

Queryable<SearchItem> SearchText(List<string> keywords, IQueryable<SearchItem> itemList) 
    { 
     var predicate = PredicateBuilder.True<SearchItem>(); 

     foreach (string keyword in keywords) 
     { 
      predicate = predicate.And(i => i.FieldOne.Contains(keyword) || i.FieldTwo.Contains(keyword) || i.FieldThree.Contains(keyword) || i.Fieldyyy.Contains(keyword)); 
     } 
     return itemList.Where(predicate); 
    } 

О predicateBuilder вы можете найти здесь: Dynamic query using predicate builder

+0

Это именно то, что мне нужно. Благодарю . –

0

Производительность может быть лучше, если вы используете К списку(); на IQueryable, только если вы отфильтровали все элементы (используя операторы LINQ), которые вам нужны из IQueryable. Когда вы вызываете .ToList(); запрос будет выполнен.

Смежные вопросы