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]