There are no magic solution for what you're trying to do.
What you can do is search each model and use a 4th model as the search
result.... using that search result model to paginate and display your
This way you should be able to sort in different fashion as made the
query much more efficient.
One question I have for you is how do you trigger the search?