Chris M. Hostetter created SOLR-18416:
-----------------------------------------

             Summary: Deal with VectorSimilarityQuery backcompat break in 
Lucene 10.5
                 Key: SOLR-18416
                 URL: https://issues.apache.org/jira/browse/SOLR-18416
             Project: Solr
          Issue Type: Sub-task
            Reporter: Chris M. Hostetter


Lucene 10.5.0 causes many Solr test failures involving the 
{{VectorSimilarityQParser}}

 

These failures trace back to some backwards incompatible changes introduced in 
Lucene 10.5.0 by [lucene#15784|https://github.com/apache/lucene/pull/15784], 
that completely changed the meaning of some 
{{(Float|Byte)VectorSimilarityQuery}} constructor arguments. As things stand 
right now (on the SOLR-18395 branch), the {{minTraverse}} and {{minReturn}} 
params provided by Solr users when using the {{VectorSimilarityQParser}} 
provided radically incorrect results compared to how they are intended.

 

As much as I hate to say it: I think the best we can do in Solr, to avoid 
propagating this backcompat break to Solr users, is to fork a bunch of Lucene's 
VectorSimilarity related Query classes as of 10.4.0.

 

I've got a bare bones proof of concept patch that demonstrates the basics – and 
gets the tests passing again.

 

To fully "move forward" I think we should start with this patch and then:
 # Document that the {{minTraverse}} param of {{VectorSimilarityQParser}} is 
deprecated.
 # When {{minTraverse}} is specified, {{VectorSimilarityQParser}} should return 
instances of the "forked" Query classes.
 # Add a new {{decay}} param to {{{}VectorSimilarityQParser{}}}, that is 
mutually exclusive with using the {{minTraverse}} param.
 # When {{decay}} is specified, {{VectorSimilarityQParser}} should return 
instances of the "official" Lucene Query classes
 # If neither {{minTraverse}} nor {{decay}} is explicitly specified by the 
user, then let the {{luceneMatchVersion}} drive the choice of whether the 
"forked" classes should be used with the existing {{{}DEFAULT_MIN_TRAVERSE{}}}, 
or if the new "official" Lucene Query classes should be used with some new 
{{DEFAULT_DECAY}} value.



--
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