11package io .qdrant .client ;
22
33import com .google .common .primitives .Floats ;
4+ import io .qdrant .client .grpc .Points .DenseVector ;
45import io .qdrant .client .grpc .Points .Document ;
56import io .qdrant .client .grpc .Points .Image ;
67import io .qdrant .client .grpc .Points .InferenceObject ;
7- import io .qdrant .client .grpc .Points .SparseIndices ;
8+ import io .qdrant .client .grpc .Points .MultiDenseVector ;
9+ import io .qdrant .client .grpc .Points .SparseVector ;
810import io .qdrant .client .grpc .Points .Vector ;
911import java .util .ArrayList ;
1012import java .util .List ;
@@ -21,7 +23,9 @@ private VectorFactory() {}
2123 * @return A new instance of {@link Vector}
2224 */
2325 public static Vector vector (List <Float > values ) {
24- return Vector .newBuilder ().addAllData (values ).build ();
26+ return Vector .newBuilder ()
27+ .setDense (DenseVector .newBuilder ().addAllData (values ).build ())
28+ .build ();
2529 }
2630
2731 /**
@@ -31,7 +35,9 @@ public static Vector vector(List<Float> values) {
3135 * @return A new instance of {@link Vector}
3236 */
3337 public static Vector vector (float ... values ) {
34- return Vector .newBuilder ().addAllData (Floats .asList (values )).build ();
38+ return Vector .newBuilder ()
39+ .setDense (DenseVector .newBuilder ().addAllData (Floats .asList (values )).build ())
40+ .build ();
3541 }
3642
3743 /**
@@ -43,8 +49,7 @@ public static Vector vector(float... values) {
4349 */
4450 public static Vector vector (List <Float > vector , List <Integer > indices ) {
4551 return Vector .newBuilder ()
46- .addAllData (vector )
47- .setIndices (SparseIndices .newBuilder ().addAllData (indices ).build ())
52+ .setSparse (SparseVector .newBuilder ().addAllValues (vector ).addAllIndices (indices ).build ())
4853 .build ();
4954 }
5055
@@ -85,10 +90,13 @@ public static Vector vector(InferenceObject object) {
8590 * @return A new instance of {@link Vector}
8691 */
8792 public static Vector multiVector (List <List <Float >> vectors ) {
88- int vectorSize = vectors .size ();
89- List <Float > flatVector = vectors .stream ().flatMap (List ::stream ).collect (Collectors .toList ());
90-
91- return Vector .newBuilder ().addAllData (flatVector ).setVectorsCount (vectorSize ).build ();
93+ List <DenseVector > denseVectors =
94+ vectors .stream ()
95+ .map (v -> DenseVector .newBuilder ().addAllData (v ).build ())
96+ .collect (Collectors .toList ());
97+ return Vector .newBuilder ()
98+ .setMultiDense (MultiDenseVector .newBuilder ().addAllVectors (denseVectors ).build ())
99+ .build ();
92100 }
93101
94102 /**
@@ -98,15 +106,12 @@ public static Vector multiVector(List<List<Float>> vectors) {
98106 * @return A new instance of {@link Vector}
99107 */
100108 public static Vector multiVector (float [][] vectors ) {
101- int vectorSize = vectors .length ;
102-
103- List <Float > flatVector = new ArrayList <>();
109+ List <DenseVector > denseVectors = new ArrayList <>();
104110 for (float [] vector : vectors ) {
105- for (float value : vector ) {
106- flatVector .add (value );
107- }
111+ denseVectors .add (DenseVector .newBuilder ().addAllData (Floats .asList (vector )).build ());
108112 }
109-
110- return Vector .newBuilder ().addAllData (flatVector ).setVectorsCount (vectorSize ).build ();
113+ return Vector .newBuilder ()
114+ .setMultiDense (MultiDenseVector .newBuilder ().addAllVectors (denseVectors ).build ())
115+ .build ();
111116 }
112117}
0 commit comments