in reply to Finding best matches

While I'm really fond of SQL for various things, I don't think your current table structure lends itself to good searching.

I see two potential approaches: