If you have 3 separate indexes setup, I'd make them all one but unique in the fashion that they ONLY get those 3 page types. For instance, create a new index and the Indexed Content should be:
- Page type: custom.assets, Path: /assets/%, Allowed
- Page type: cms.menuitem, Path: /%, Allowed
- Page type: cms.events, Path: /events/%, Allowed
This will ONLY index assets, events and pages in those 3 paths.
Now when you go to setup your page:
Search results
- add a smart search results webpart to the page
- Set the indexes to the single index you just created
- leave the Path empty
- set the Search options to "Full"
- set your transformation
Search filter
- add a smart search filter to the page
- set the Search dialog webpart to the Search results webpart ID you just added (typically something like SmartSearchResults)
- Filter mode: Checkbox
- Filter auto postback: checked (true)
- Values = (on individual lines, second value is the classname you want to filter by)
classname;custom.assets;Assets
classname;cms.event;Events
classname;cms.menuitem;Pages
- Filter clause: Must
- Filter is conditional: checked (true)
Save it and test your filter. Should bring back all the results initially or when you search for a term, then select a checkbox and it will display the proper "classname" of a page you're looking for.