: Yes, I already looked dismax which I'm using for other purposes, the big : deal for this problem is having summed only the best match of each field. In : dismax it sum all matches on each field.
can you describe what you want in pusedo code? what you are describing sounds exactly like using the dismax parser with tie=0. that way each "clause" of the input only gets the max score from each of hte fields in the qf param. dismax doesn't sum all matches on each field, it sums the *max* match on each field, plus a tie breaker multiplier times the sum of all other matches on each field -- if tie=0 it's a true disjunction max query, if tie=1 it's a true disjunction sum query. -Hoss