SO what you want is that filter is innverted.
This need a custom dev. most shop use aggregation. for example, if you have memory 16Gb and 32 GB when you select the 2 is not possible to have results.
In your case the logic need to be inverted.
So in your case you want that only recipes having Lemon and mint as Ingredients are displayed and not Lemon or mint.
Another solution is to set 1 tag per type only; but it's not really optimised.
And a simpler solution, is to manually set the search using keywords.
Eg you do a keywords list with checkboxes "Orange","Lemon","Vodka" and each selected words get added to the search using javascript and use a hidden input.
You add all the keywords in the short description in the same order as the list and VM should then filter correctly your products.
Note that using the last trick only work if you have the word in the same order as your list eg.
Orange, Lemon, Vodka in short desc is found using "Orange","Lemon","Vodka" in the list but not Vodka, Orange, Lemon as short desc