There are two directions you could go with this, you could go strictly
SQL and use the EZWhere plugin to help you build the SQL or you could
go with an index search engine using the Ferret plugin. Personally I
think I would go with Ferret, but I am already familiar with Lucene
(which Ferret is based on).
Just two ideas, I am sure others will have more. Good luck!