Hey John.. well, thats a tough question, esp. as there is no 'general rule' on how a tag could should look like and which criteria should be taken into account..
http://www.omdb.org/encyclopedia is based on ferret.. but we're storing a :popularity for each tag.. and ferret is simply sorting its index using the popularity .. here's what we do [1]: def popular_categories_by_type( root_id ) query = BooleanQuery.new query.add_query( TermQuery.new( :type, Category.to_s.downcase ), :must ) query.add_query( TermQuery.new( :root_id, root_id.to_s ), :must ) query.add_query( TermQuery.new( :is_assignable, '1' ), :must ) order = orderfield( [ "popularity".to_sym ], :type => :integer, :reverse => true ) objects = self.real_search( query, :limit => 30, :order => order ) end hope that helps .. Ben [1] http://bugs.omdb.org/browser/trunk/lib/omdb/ferret/local_search.rb _______________________________________________ Ferret-talk mailing list [email protected] http://rubyforge.org/mailman/listinfo/ferret-talk

