wanna make a catalog list

Hi All,
I have a model called colleges, that contains college name,
speciality, location, articles on colleges, etc.
So, I want to create a catalog for users to browse.

I want a listing based on location, speciality, name, etc. And want to
display articles related to these fields.
If I do a SELECT DISTINCT, everytime I display the page, this will
take query all the fields and it takes time.

In the sense, i am doing
@colleges = College.find(:all, :select=>"DISTINCT location")

Is there a better way of doing this? Should I have a seperate table
for the statistics?
Please help me with this.