Open ThreadDao opened 1 month ago
Insert sparse vector and query output sparse vector, the dim of inserted sparse vector dim is int(se.positions[se.len-1]) + 1, the dim of query output vector is always 0
# inserted sparse vector: dim: (int) 42, len: (int) 21 # output sparse vector: dim: (int) 0, len: (int) 21
case:
func TestQuerySparseVector(t *testing.T) { t.Parallel() idxInverted := entity.NewGenericIndex(common.DefaultSparseVecFieldName, "SPARSE_INVERTED_INDEX", map[string]string{"drop_ratio_build": "0.2", "metric_type": "IP"}) idxWand := entity.NewGenericIndex(common.DefaultSparseVecFieldName, "SPARSE_WAND", map[string]string{"drop_ratio_build": "0.3", "metric_type": "IP"}) for _, idx := range []entity.Index{idxInverted, idxWand} { ctx := createContext(t, time.Second*common.DefaultTimeout*2) // connect mc := createMilvusClient(ctx, t) // create -> insert [0, 3000) -> flush -> index -> load cp := CollectionParams{CollectionFieldsType: Int64VarcharSparseVec, AutoID: false, EnableDynamicField: false, ShardsNum: common.DefaultShards, Dim: common.DefaultDim, MaxLength: common.TestMaxLen} collName := createCollection(ctx, t, mc, cp) // index idxHnsw, _ := entity.NewIndexHNSW(entity.L2, 8, 96) mc.CreateIndex(ctx, collName, common.DefaultFloatVecFieldName, idxHnsw, false) mc.CreateIndex(ctx, collName, common.DefaultSparseVecFieldName, idx, false) // insert intColumn, _, floatColumn := common.GenDefaultColumnData(0, common.DefaultNb, common.DefaultDim) varColumn := common.GenColumnData(0, common.DefaultNb, entity.FieldTypeVarChar, common.DefaultVarcharFieldName) sparseColumn := common.GenColumnData(0, common.DefaultNb, entity.FieldTypeSparseVector, common.DefaultSparseVecFieldName, common.WithSparseVectorLen(20)) mc.Insert(ctx, collName, "", intColumn, varColumn, floatColumn, sparseColumn) mc.Flush(ctx, collName, false) mc.LoadCollection(ctx, collName, false) // count(*) countRes, _ := mc.Query(ctx, collName, []string{}, fmt.Sprintf("%s >=0", common.DefaultIntFieldName), []string{common.QueryCountFieldName}) require.Equal(t, int64(common.DefaultNb), countRes.GetColumn(common.QueryCountFieldName).(*entity.ColumnInt64).Data()[0]) // query queryResult, err := mc.Query(ctx, collName, []string{}, fmt.Sprintf("%s in [0, 1]", common.DefaultIntFieldName), []string{"*"}) common.CheckErr(t, err, true) common.CheckOutputFields(t, queryResult, []string{common.DefaultIntFieldName, common.DefaultVarcharFieldName, common.DefaultFloatVecFieldName, common.DefaultSparseVecFieldName}) common.CheckQueryResult(t, queryResult, []entity.Column{intColumn.Slice(0, 2), varColumn.Slice(0, 2), floatColumn.Slice(0, 2), sparseColumn.Slice(0, 2)}) } }
No response
/assign @congqixia
Is there an existing issue for this?
Current Behavior
Insert sparse vector and query output sparse vector, the dim of inserted sparse vector dim is int(se.positions[se.len-1]) + 1, the dim of query output vector is always 0
case:
Expected Behavior
No response
Steps To Reproduce
No response
Environment
No response
Anything else?
No response