build an array, where you write down all the tables with label names.
Store the field names in this array to specify the search type for the fields, fulltext, range, ect.
finally you will build the queries depending the "content type"
The categories will be your table's label names.
The results could store which content you're talking about, if you specify a link template, you can build details page to that related entry.
The main search should use a dropdown or a multile list element to select which content type you want to select.
I'm using database to store these parameters.