For this you could make use of a so called ‘helper object’. You can create a non persistable search entity, from which you could relate multiple AND/OR/NOT search parameters.
The Search page would contain a dataview for the Search entity. You can then create associated ‘Parameters’. On the page you could have a list (eg datagrid) that returns the list of contacts that match your criteria via a microflow (or via xpath depending on the complexity of your query).
Hope this points you in the right direction.