To understand the logic of predicate please follow the link below –   https://getfishtank.ca/blog/building-dynamic-content-search-linq-queries-in-sitecore-7