Do you know the values ahead of time you're looking to filter with or were those to be generated on the fly based on your dataset?
If you know all of the filter combinations ahead of time you can create a beast mode for with case statments to then return the "filter name" and add a quick filter based on those predefined options
CASE WHEN lower(`field`) like '%sunshine%' 'Yes'
CASE WHEN lower(`field`) like '%mountain%' 'Yes' ELSE 'No' END
The downside with this approach is that you'd have several different filters a user would need to scroll through and maintain.
Upside being you have more flexibility and less things to click on assuming you have a long list of possibilities.
The other option is to add a quick filter for a text field (default Select All being unchecked and save your users a step) and then in the search text box you can add the wildcard character % inbetween your values. This will display any values which match those values however it is order dependent so you'd need to search "Sunshine%mountain" and "mountain%Sunshine" and select the resulting values listed.
Neither option is exactly ideal but are ways you could filter based on multiple contains.
Great post by @GrantSmith . You can also nest your CASE statement if that would cut down on your long term maintenance and in thise case just have one filter to check Yes to if you wanted see results for sunshine and mountains. It would look like this:
CASE WHEN lower(`field`) like '%sunshine%' THEN (CASE WHEN lower(`field`) like '%mountain%' THEN 'Yes' ELSE 'No' END) ELSE 'No' END