Closed navneet1v closed 3 months ago
Checking why CIs are failing. it doesn't seem the issue with the code.
- If index.knn is false and we use the Lucene based vector field then KNNCodec will not be triggered and default KNNFormat will be used which will create the HNSW graph as that is what default behavior of Lucene library.
Does this mean if someone upgrades their index with knn=false, it is going to switch from binary doc values to lucene?
- If index.knn is false and we use the Lucene based vector field then KNNCodec will not be triggered and default KNNFormat will be used which will create the HNSW graph as that is what default behavior of Lucene library.
Does this mean if someone upgrades their index with knn=false, it is going to switch from binary doc values to lucene?
To limit the scope of this pr and refactoring you are doing if its not a knn index we will still BDV
- If index.knn is false and we use the Lucene based vector field then KNNCodec will not be triggered and default KNNFormat will be used which will create the HNSW graph as that is what default behavior of Lucene library.
Does this mean if someone upgrades their index with knn=false, it is going to switch from binary doc values to lucene?
No. I have clarified the description now. I see how the confusion was happening.
Looks good. Needs a rebase but approving
Thanks. I am fixing the conflicts. Will raise the PR in few hours.
Description
Integrate Lucene Vector field with native engines, to use KNNVectorFormat during segment creation
What has changed and why:
index.knn
is false then we will use DocValuesBased Vector Field. Because if we use the Lucene based vector field then KNNCodec will not be triggered and default KNNFormat will be used which will create the HNSW graph as that is what default behavior of Lucene library. This is the reason why indexKNN check is added while deciding which VectorField to use.Related Issues
https://github.com/opensearch-project/k-NN/issues/1853
Check List
--signoff
.By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license. For more information on following Developer Certificate of Origin and signing off your commits, please check here.