Truffler Sample
  • Basic
  • Sorting
  • Paging
  • Highlighting
  • Filters
  • Facets
  • Autocomplete
  • Map

Filtering Complex filtering with multiple options

Search for something general, like "Restaurant", and play with the filters.

View Source
ITypeSearch query = client.Search()
    .For(q);

if (cuisines != null)
{
    var cuisineFilter = client.BuildFilter();
    foreach (var cuisine in cuisines)
    {
        cuisineFilter = cuisineFilter.Or(x => x.Cuisine.Match(cuisine));
    }
    query = query.Filter(cuisineFilter);
}

if (countries != null)
{
    var countryFilter = client.BuildFilter();
    foreach (var country in countries)
    {
        countryFilter = countryFilter.Or(x => x.Country.Match(country));
    }
    query = query.Filter(countryFilter);
}
            
var results = query.Select(x => new SearchHit
                {
                    Title = x.Name,
                    Url = x.Website ?? x.WikipediaUrl,
                    Location = new List { x.StreetAddress, x.City, x.Country }.Concatenate(", "),
                    MichelinRating = x.MichelinRating ?? 0
                })
    .GetResult();