[
https://issues.apache.org/jira/browse/SOLR-18542?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
ASF GitHub Bot updated SOLR-18542:
----------------------------------
Labels: pull-request-available (was: )
> 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
> Priority: Major
> Labels: pull-request-available
> Time Spent: 10m
> Remaining Estimate: 0h
>
> 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]