Here is the design of the database (small, don't be afraid to look):
http://citizensforsocialjustice.com/wiki/images/design.jpg
*Organization has and belongs to many keywords
What I am trying to do: given an array of keywords, search all organizations that belong to at least 1 or those keywords BUT return the result in hit order (the organization that matched with the most keywords comes first, then the next one, and so on...).