MCPcopy
hub / github.com/redis/go-redis / hybridVectorBlob

Function hybridVectorBlob

search_commands.go:3669–3696  ·  view source on GitHub ↗
(v Vector)

Source from the content-addressed store, hash-verified

3667}
3668
3669func hybridVectorBlob(v Vector) (interface{}, error) {
3670 if v == nil {
3671 return nil, fmt.Errorf("FT.HYBRID: vector data is required")
3672 }
3673
3674 switch vector := v.(type) {
3675 case *VectorFP32:
3676 return hybridVectorBytes(vector.Val)
3677 case *VectorFloat16:
3678 return hybridVectorBytes(vector.Val)
3679 case *VectorBFloat16:
3680 return hybridVectorBytes(vector.Val)
3681 case *VectorFloat64:
3682 return hybridVectorBytes(vector.Val)
3683 case *VectorInt8:
3684 return hybridVectorBytes(vector.Val)
3685 case *VectorUint8:
3686 return hybridVectorBytes(vector.Val)
3687 case *VectorValues, *VectorRef:
3688 return nil, fmt.Errorf("FT.HYBRID: unsupported vector type %T", v)
3689 default:
3690 values := v.Value()
3691 if len(values) < 2 {
3692 return nil, fmt.Errorf("FT.HYBRID: vector Value must contain a blob at index 1")
3693 }
3694 return values[1], nil
3695 }
3696}
3697
3698func hybridVectorBytes(blob []byte) ([]byte, error) {
3699 if len(blob) == 0 {

Callers 2

TestHybridVectorBlobFunction · 0.85
FTHybridWithArgsMethod · 0.85

Calls 2

hybridVectorBytesFunction · 0.85
ValueMethod · 0.65

Tested by 1

TestHybridVectorBlobFunction · 0.68