Revert cosine deprecation (#13613)

Opening for more pointed discussion. See latest discussion here: #13281

I was hoping to have a full answer for folks who use byte models by Lucene 10, but I just don't have that.

I still want to remove the internal cosine optimized methods. We can do this if we store magnitudes along side the raw vectors. This way we can remove all the internal optimized cosine code as its complicated.
This commit is contained in:
Benjamin Trent 2024-08-01 15:05:05 -04:00 committed by GitHub
parent 2f297b7735
commit 836c8e76ad
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 2 additions and 14 deletions

View File

@ -254,9 +254,7 @@ Other
API Changes
---------------------
* GITHUB#13281: Mark COSINE VectorSimilarityFunction as deprecated. (Pulkit Gupta)
* GITHUB#13469: Expose FlatVectorsFormat as a first-class format; can be configured using a custom Codec. (Michael Sokolov)
* GITHUB#13469: Expose FlatVectorsFormat as a first-class format; can be configured using a custom Codec. (Michael Sokolov)
* GITHUB#13612: Hunspell: add Suggester#proceedPastRep to avoid losing relevant suggestions. (Peter Gromov)

View File

@ -66,10 +66,7 @@ public enum VectorSimilarityFunction {
* vectors to unit length, and instead use {@link VectorSimilarityFunction#DOT_PRODUCT}. You
* should only use this function if you need to preserve the original vectors and cannot normalize
* them in advance. The similarity score is normalised to assure it is positive.
*
* @deprecated Use MAXIMUM_INNER_PRODUCT or DOT_PRODUCT instead
*/
@Deprecated
COSINE {
@Override
public float compare(float[] v1, float[] v2) {

View File

@ -70,9 +70,7 @@ public final class VectorUtil {
* Returns the cosine similarity between the two vectors.
*
* @throws IllegalArgumentException if the vectors' dimensions differ.
* @deprecated use dot-product instead using normalized vectors
*/
@Deprecated
public static float cosine(float[] a, float[] b) {
if (a.length != b.length) {
throw new IllegalArgumentException("vector dimensions differ: " + a.length + "!=" + b.length);
@ -82,12 +80,7 @@ public final class VectorUtil {
return r;
}
/**
* Returns the cosine similarity between the two vectors.
*
* @deprecated use dot-product instead using normalized vectors
*/
@Deprecated
/** Returns the cosine similarity between the two vectors. */
public static float cosine(byte[] a, byte[] b) {
if (a.length != b.length) {
throw new IllegalArgumentException("vector dimensions differ: " + a.length + "!=" + b.length);