> I can't see a way to do it without functionqueries at the moment, which > doesn't mean there isn't any.
If you want to use the suggested sort method, you could probably sort first by score: sort=score desc, num_copies desc, num_comments desc To let the score be influenced by exact author match only, you can set all other components to 0 (disMax): qf=author^0.0 title^0.0 author_exact Personally I doubt that the requirements will give an excellent usability experience. If you do NOT get an exact author match, you will get a "bestseller" list, not taking into account your terms in the ranking at all. Unless there are specific reasons for these requirements I'd recommend using rank boosts instead of simple sorting. Boost author_exact very high using DisMax combined with a version of the author field with KeywordTokenizerFactory and LowerCaseFilterFactory, perhaps combined with PatternReplaceFilterFactory to normalize punctuation etc. <fieldType name="author_exact" class="solr.TextField"> <analyzer> <tokenizer class="solr.KeywordTokenizerFactory"/> <filter class="solr.LowerCaseFilterFactory" /> <filter class="solr.PatternReplaceFilterFactory" pattern="([^a-z0-9])" replacement=" " replace="all" /> </analyzer> </fieldType> Then boost num_copies and num_comments using FunctionQueries in such a way that sold copies count more than comments. Example: http://localhost:8093/solr/select?defType=dismax&author:(j.k. rowling)&qf=author^5.0 author_exact^1000.0 title^10.0 descr^0.2&fq=log(sum(num_copies,1))^1000.0 log(sum(num_comments,1))^100.0 Also a hint for this kind of fields is to disable field normalization (omitNorms="true") -- Jan Høydahl, search solution architect Cominvent AS - www.cominvent.com