You are using a custom feature not something included in mojoPortal so if you are having performance problems with this custom feature you should ask the developer who built it about the problem instead of assuming it is caused by mojoPortal (which it is not).
The mojoPortal internal search does not even use the database (it is based on Lucene.NET search engine and it uses a file based search index that is very fast) and it looks to me like you are not even using it but instead using some custom search implemented by someone else and more than likely your custom search is using the database but that is not part of mojoPortal. mojoPortal has no control over your custom features and how well they perform. If your custom feature does expensive hits to the database there is nothing mojoPortal can magically do to make it work well. If you need to cache results from your own hits to the database then cache them in your custom code.
Someone built all that custom functionality, if not you and not your current developer I suggest get in contact with the developer who did the work, it is not part of mojoPortal and mojoPortal is not to blame for the problems you are having with your custom code.