To be honest, I'm not sure if MATCH is a good option.
I'll have to do this from memory, not having my notes with me right now, but here goes.
MATCH isn't supported by all db's.
MATCH can rank results or it can do boolean searches but you can't do both at once, at least not without limiting the range of search options you can provide.
I know you can get rank in a MATCH in boolean mode search on a single col but I remember running into problems with some or all of: searching in multiple cols, searching in multiple tables, or using complex JOIN queries. A good search engine should let you do all those things: that way you are freer to add all kinds of new search options as required.
The MATCH ranking system is tuned for very large databases. It's also kind of obscure - it may be a good or bad algorithmn (no doubt it's a good one for the purpose intended) but it is not one which your users will understand. I feel that makes MATCH searches less intuitive than they might be since it's less easy for the user to predict how manipulating search terms will affect the results returned.
Maybe there is no perfect solution for ranking & noise words but, if you roll your own (in a nice, modular OOP manner), at least you can swap different algorithmns easily to suit different site's needs.
MATCH has a default limitation of a minimum 4 (?) chars per word. Tough if you want to search for PHP or MVC. You can adjust this setting I believe (if you have control over mysql...), but I don't know how well MATCH will perform when you lower the threshold. I suspect the minimum is there for a good reason.
I seem to remember a problem trying to support suffix/prefix searches - or was it phrase searches? MATCH obviously has a boolean mode for these things - maybe it was just the boolean ranking issue again rather than ~fixes/phrases per se.
It's quite possible to create a fully rankable, boolean-supporting search engine with LIKE/RLIKE. You can even add features not supported by MATCH such as allowing the user to enter multipliers to skew the ranking up or down for certain words, by a chosen amount.
I couldn't say if there are significant performance differences between MATCH and RLIKE. They aren't entirely comparable in any case since (again from memory) there are things you can do with the latter which you can't do with MATCH.
CombinationsIterator might be of interest. The class can be used to dynamically build SQL WHERE clauses. Exactly how would take a little explaining. One day I'll post something when I get a chance to finish my own search engine.