Puneet Ahuja created SOLR-18542:
-----------------------------------

             Summary: Support weighted RRF in combined queries
                 Key: SOLR-18542
                 URL: https://issues.apache.org/jira/browse/SOLR-18542
             Project: Solr
          Issue Type: Improvement
    Affects Versions: main(11.0)
            Reporter: Puneet Ahuja


Combined Query RRF gives every query list equal weight, so a caller can't favor 
one list. For example, they can't keep an exact lexical match above a loosely 
similar vector match. Elasticsearch and OpenSearch both support per-list 
weights.

Additionally, {{ReciprocalRankFusion.getRanks}} iterates 
{{queriesDocMap.values()}} (a {{{}HashMap{}}}) but labels the rank array with 
{{combiner.query}} keys in request order. When the HashMap iteration order 
differs from the request order, the debug explain mislabels which rank belongs 
to which query.

Solution:
 * Add {{{}combiner.rrf.weight.<queryName>{}}}, a non-negative multiplier on 
that query's reciprocal rank contribution that defaults to {{{}1.0{}}}. 
Requests without it behave exactly as today.
 * Reject negative weights, and weights for names that aren't in 
{{{}combiner.query{}}}.
 * Make {{getRanks}} iterate in {{combiner.query}} order, so each rank and 
weight in the explain lines up with the right query.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to