Search code examples
sitecoresitecore7

Sitecore Search Multiple words


How can I search for multiple words with Sitecore 7 ? I tried with Contains for every word but doesn't work fine and I think performance it's not really good.


Solution

  • you can user PredicateBuilder for this issue :

    Code will be something like:

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

    About predicateBuilder you can find here : Dynamic query using predicate builder