如何做响应式的网站,关键词数据分析,锡山区住房和城乡建设局网站,个人网站怎么做微信支付两种路线#xff1a;
第一种是把byte[]转换为List float #xff0c;然后存储到Milvus的floatVector中第二种是把byte[]转换为ByteBuffer#xff0c;然后存储到Milvus的BinaryVector中
步骤#xff1a;
我先用的是第一种#xff0c;但是在转换float过程中…两种路线
第一种是把byte[]转换为List float 然后存储到Milvus的floatVector中第二种是把byte[]转换为ByteBuffer然后存储到Milvus的BinaryVector中
步骤
我先用的是第一种但是在转换float过程中报错NaN某些数据无法转换于是换第二种伪代码如下 //创建集合...//设置向量字段FieldType fieldType FieldType.newBuilder().withName(feature).withDataType(DataType.BinaryVector).withDimension(8256).build();...// 获取数据byte[] featureData ...;// 转换数据ByteBuffer byteBuffer ByteBuffer.wrap(featureData);// 注意这里修改position不然会报错byteBuffer.position(byteBuffer.capacity());// 插入准备ListByteBuffer vector new ArrayList();vector.add(byteBuffer);ListInsertParam.Field fields new ArrayList();fields.add(new InsertParam.Field(feature,vector));// 插入数据InsertParam insertParam InsertParam.newBuilder().withCollectionName(collection_name).withFields(fields).build();RMutationResult mutationResultR milvusClient.insert(insertParam);报错Incorrect dimension for field ‘feature’: the no.0 vector’s dimension: 0 is not equal to field’s dimension: 1032
解决思路先百度谷歌然后没找到解决办法于是看报错位置查源码定位报错原因如下 然后发现byte[]在经过ByteBuffer byteBuffer ByteBuffer.wrap(featureData);这段代码转换时position被默认设置为0因此加入byteBuffer.position(byteBuffer.capacity());修改position值还有需要注意的是设置该字段的向量维度时需要设置为byte[]的长度乘以8