EAV är ett giltigt alternativ - det kan vara komplext och besvärligt med vad som faktiskt blir otypad data.
XML med XPath skulle också vara ett alternativ: http://dev.mysql.com/tech-resources/articles/xml-in-mysql5.1-6.0.html
Jag skulle tro att de flesta fall skulle kräva att du genererar dynamisk SQL om sökfälten kan variera.