: Problem is that they want scores that make results fall in buckets: : : * Bucket 1: exact match on category (score = 4) : * Bucket 2: exact match on name (score = 3) : * Bucket 3: partial match on category (score = 2) : * Bucket 4: partial match on name (score = 1) ... : First thing we did was develop a custom similarity class that would : return the correct score depending on the field and an exact or partial : match. ... : The only problem now is that when a document matches on both the : category and name the scores are added together.
what QParser are you using? what does the resulting Query data structure look like? I think with your custom Similarity class you might be able to achieve your goal using the DisMaxQParser w/o any other custom code -- just set your "qf=category name" (i'm assuming your Similarity already handles the relative weighting) and set the "tie=0" ... that will ensure that the final score only comes from the "Max" scoring field (ie: no tie breaking values fro mthe other fields) if thta doesn't do what you want -- then your best bet is probably to write a custom QParser that generates *exactly* the query structure you want (likely using a DisjunctionMaxQuery) thta will give you the scores you want in conjunction with your similarity class. -Hoss