mirror of
https://gitee.com/milvus-io/milvus.git
synced 2026-01-07 03:13:22 +08:00
issue: #39157 Overview: Support search by PK by resolving IDs to vectors on Proxy side. Upgrade go-api to adapt to new proto definitions. Design: - Upgrade milvus-proto/go-api to latest master. - Implement handleIfSearchByPK in Proxy: resolve IDs to vectors via internal Query, then rewrite SearchRequest. - Adapt to 'SearchInput' oneof field in SearchRequest across client and handlers. - Fix binary vector stride calculation bug in placeholder utils. Compatibility: - Old Pymilvus can still work w/o this feature What is included: - Dense and Sparse - Multi vector fields - Rejection on BM25 What is **not** include: - Hybrid Search - EmbeddingList - Restful API Signed-off-by: Li Liu <li.liu@zilliz.com>
60 lines
1.3 KiB
Go
60 lines
1.3 KiB
Go
package funcutil
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func Test_flattenedBinaryVectorsToByteVectors(t *testing.T) {
|
|
flattenedVectors := []byte{0, 1, 2, 3, 4, 5}
|
|
dimension := 24
|
|
|
|
actual := flattenedBinaryVectorsToByteVectors(flattenedVectors, dimension)
|
|
expected := [][]byte{
|
|
{0, 1, 2},
|
|
{3, 4, 5},
|
|
}
|
|
|
|
assert.Equal(t, expected, actual)
|
|
}
|
|
|
|
func Test_flattenedFloat16VectorsToByteVectors(t *testing.T) {
|
|
flattenedVectors := []byte{0, 1, 2, 3, 4, 5, 6, 7}
|
|
dimension := 2
|
|
|
|
actual := flattenedFloat16VectorsToByteVectors(flattenedVectors, dimension)
|
|
expected := [][]byte{
|
|
{0, 1, 2, 3},
|
|
{4, 5, 6, 7},
|
|
}
|
|
|
|
assert.Equal(t, expected, actual)
|
|
}
|
|
|
|
func Test_flattenedBFloat16VectorsToByteVectors(t *testing.T) {
|
|
flattenedVectors := []byte{0, 1, 2, 3, 4, 5, 6, 7}
|
|
dimension := 2
|
|
|
|
actual := flattenedBFloat16VectorsToByteVectors(flattenedVectors, dimension)
|
|
expected := [][]byte{
|
|
{0, 1, 2, 3},
|
|
{4, 5, 6, 7},
|
|
}
|
|
|
|
assert.Equal(t, expected, actual)
|
|
}
|
|
|
|
func Test_flattenedInt8VectorsToByteVectors(t *testing.T) {
|
|
flattenedVectors := []byte{0, 1, 2, 3, 4, 5, 6, 7}
|
|
dimension := 4
|
|
|
|
actual := flattenedInt8VectorsToByteVectors(flattenedVectors, dimension)
|
|
expected := [][]byte{
|
|
{0, 1, 2, 3},
|
|
{4, 5, 6, 7},
|
|
}
|
|
|
|
assert.Equal(t, expected, actual)
|
|
}
|