If at all possible, consider an extension model for the Examine searcher that allows runtime resolving of filters, facets, sorters etc. that are not known at compile time.
Alternatively, make the Examine searcher inheritable and add a protected virtual hook for handling these unknown types.