Is it the processing of the results that is intensive on the server, rather than the actual search itself? it still goes through the rows looking for things matching the criteria given doesn't it, regardless of whether you search for 1 day, or 1000 days - it's still checking every record for it...
If its the processing, that's where pagination could really help out with the results... although it would be repeated query running of course (maybe a bad thing if the actual query and not processing the results is the issue on server load).
However, the current system looks great, and works well enough. I say enough, simply because I have another suggestion. The problem is this:
You can only search 120 days, some may wish to search back further. However, it doesn't matter too much - because to be honest, it pulls results from whatever time period to the front, ordered by the date. So, if you are searching back 120 days, limit the search to 100 rows - and then search for freelancer - you'll barely get past the first few weeks... let alone 120 days.
So the first thing i'd suggest is putting a reversal of the order by date as an option. So you can effectively search backwards as well as forwards (ie, you get the oldest first). People can repeat the search with the limited date function to try and get every date.
The second thing i'd suggest is putting some more time options in there. Obviously it'll work harder if it has to search the main text of every single record in history, so how about some "from - to" date options? In other words, it goes back 120 days - how about 120-180 days previously, 180-360, 1 year - 2 years.
Yeah, that'd be almost exponential on the load, but if that's not going to happen - we can actually do a blanket delete of older topics (which haven't been had a post in within the last 2 years). After all, if you cannot see the post in the forums by selecting posts from the last year (limited, for good reason - but the forums don't paginate, otherwise it would be not as bad) and you cannot search for results over 120 days (again, ensuring that older stuff can never be read) - then it can't ever be read by anyone... at which point, it's surplus to requirements. That'd help cut down on the database size somewhat imo
(something i mentioned years ago was removing all old threads that no-one can find or read as they are just too old. Now it's only 1 year you can look back, may as well get rid of anything that hasn't been posted in within the last year! imagine the amount of free'd up space they'd be
).