Originally Posted by pilotbob
For me tags is the best way to do this.
Ah, give the man a prize; that's precisely what I was thinking.
I'm currently launching a messaging service using avatars in my day job, and we've been implementing tags as a means for searching for avatars. It's fast, intuitive, and as long as you're allowing people to make their own and assign them as they will, they're devastatingly useful.
Reading the category/searching requirements, it seems to me that tags are definitely a big win.
I also like categorising groups of tags, so that they can be arranged in a column view, one tag category per column. Filter row results based on combinations of positive and negative occurrences of a set of tags, and virtually everything we've been talking about here can be done automatically.