Хотя это действительно зависит от того, кто является вашей целевой аудиторией и насколько они технически. Поскольку вы описываете довольно сложную условную фильтрацию, я предполагаю, что целевому пользователю удобно писать логику.
Мне понравилось, как salesforce.com реализовал подобную фильтрацию в своей системе отчетов. Как пользователь, вы можете добавить столько условий, сколько захотите, щелкнув знак плюса (значок). По умолчанию все они являются AND, однако у вас есть текстовое поле, в которое можно ввести логику.
Например:
1. == яблоко
2. б == 10
3. с == клюква
4. д == 20
Условная логика: (1 и 2) или (3 и 4)
Как указано выше, это имело бы смысл для бизнес-приложения или где-то в потребительском приложении, где пользователь сам выбрал себя достаточно опытным. Это определенно неправильный подход, если вы ожидаете, что потребители будут использовать его без какой-либо продвинутой подготовки.