Boolean advanced multi selection filter
How to do an advanced search in a simple, effective way and in a small space?
Today I bring you an interaction with a more advanced concept that allows you to improve the precision of search results. This idea comes from an insurance project, which consists of a tool that users will use daily. For this reason, an increase in complexity could be allowed to some extent.
The concept is as follows: a multi-selection check in a filter can show the results containing the selected options, increasing the number of results the more options are activated. Another interpretation of the multi-selection check can be showing those results that meet all the selected options, decreasing the number of results the more options are activated. The challenge was to allow these two behaviors in the same filter field, added to the possibility of showing those results that do not meet certain conditions.
In a user interface, we solve these problems using several search rules (nested or not) linked by boolean rules (AND / OR, ALL / ANY). Unfortunately, this is complex to interpret and inefficient since generating them requires constant verification that we wrote the query correctly.
As I show here, the solution generates all possible variations of queries, thus reducing the possibility that a user will make a mistake. First, we select the types of insurance we want to see. Then, it returns all the results that contain at least one of the selected ones (equivalent to a simple multi-selection). Among these results, you can indicate what types of insurance we want to include in each result: those results containing all the selected elements. And among those, you can choose those options that you want to exclude from the results, showing the results that do not contain them. I have included some Venn diagrams to illustrate the operation better :)
It may not be intuitive to use this concept (it may need a text revision). Still, I believe the efficiency and simplicity gained when generating a query of this type will significantly increase the power of any search where this filter is present.
I hope that it has inspired you and that you find it interesting, both to comment on and to be able to use in your projects.