kaivalnp commented on code in PR #16065:
URL: https://github.com/apache/lucene/pull/16065#discussion_r3250371114
##########
lucene/sandbox/src/java/org/apache/lucene/sandbox/codecs/faiss/FaissLibraryNativeImpl.java:
##########
@@ -275,31 +268,34 @@ private interface FloatToFloatFunction {
private final Arena arena;
private final MemorySegment indexPointer;
private final FloatToFloatFunction scaler;
+ private final VectorSimilarityFunction function;
+ private final int dimension;
private boolean closed;
- private Index(MemorySegment indexPointer) {
+ private Index(MemorySegment indexPointer, VectorSimilarityFunction
function) {
this.arena = Arena.ofShared();
this.indexPointer =
indexPointer
// Ensure timely cleanup
.reinterpret(arena, wrapper::faiss_Index_free);
-
- // Get underlying function
- int metricType = wrapper.faiss_Index_metric_type(indexPointer);
- VectorSimilarityFunction function = metricToFunction(metricType);
Review Comment:
This function reads the metric type from the index as the ground truth -- I
wonder if there's a possibility of a mismatch b/w the passed value and the one
used to index vectors?
I guess it's tricky now because one metric can map to two similarity
functions..
Anyways, this doesn't seem like a blocker to me based on actual usage (i.e.
the one in `FieldInfos` should be correct)
Q: do we still need the `faiss_Index_metric_type` function, or can we remove
it?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]