Skip to content

Commit 4110185

Browse files
committed
fix: qdrant import script named vectors config
1 parent 83d69bf commit 4110185

File tree

1 file changed

+29
-26
lines changed

1 file changed

+29
-26
lines changed

cmd/import/main.go

Lines changed: 29 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -353,39 +353,42 @@ func createCollection(ctx context.Context, client *qdrant.Client, collectionName
353353
func enableProductionIndexing(ctx context.Context, client *qdrant.Client, collectionName string) error {
354354
log.Printf("Enabling production HNSW indexing for collection: %s", collectionName)
355355

356-
// Update HNSW config for each named vector (dirs, names, contents)
356+
// Build named vectors config map
357+
namedVectorsConfig := make(map[string]*qdrant.VectorParamsDiff)
357358
for _, vectorName := range []string{"dirs", "names", "contents"} {
358-
log.Printf(" Updating HNSW config for vector: %s", vectorName)
359-
360-
err := client.UpdateCollection(ctx, &qdrant.UpdateCollection{
361-
CollectionName: collectionName,
359+
namedVectorsConfig[vectorName] = &qdrant.VectorParamsDiff{
362360
HnswConfig: &qdrant.HnswConfigDiff{
363-
M: qdrant.PtrOf(uint64(48)),
361+
M: qdrant.PtrOf(uint64(48)),
362+
OnDisk: qdrant.PtrOf(false),
364363
},
365-
VectorsConfig: &qdrant.VectorsConfigDiff{
366-
Config: &qdrant.VectorsConfigDiff_Params{
367-
Params: &qdrant.VectorParamsDiff{
368-
HnswConfig: &qdrant.HnswConfigDiff{
369-
M: qdrant.PtrOf(uint64(48)),
370-
OnDisk: qdrant.PtrOf(false),
371-
},
372-
},
364+
OnDisk: qdrant.PtrOf(true), // Keep vectors on disk, only HNSW in RAM
365+
}
366+
}
367+
368+
// Update all named vectors and collection settings in a single call
369+
err := client.UpdateCollection(ctx, &qdrant.UpdateCollection{
370+
CollectionName: collectionName,
371+
VectorsConfig: &qdrant.VectorsConfigDiff{
372+
Config: &qdrant.VectorsConfigDiff_ParamsMap{
373+
ParamsMap: &qdrant.VectorParamsDiffMap{
374+
Map: namedVectorsConfig,
373375
},
374376
},
375-
OptimizersConfig: &qdrant.OptimizersConfigDiff{
376-
IndexingThreshold: qdrant.PtrOf(uint64(0)),
377-
},
378-
QuantizationConfig: &qdrant.QuantizationConfigDiff{
379-
Quantization: &qdrant.QuantizationConfigDiff_Binary{
380-
Binary: &qdrant.BinaryQuantization{
381-
AlwaysRam: qdrant.PtrOf(true),
382-
},
377+
},
378+
OptimizersConfig: &qdrant.OptimizersConfigDiff{
379+
IndexingThreshold: qdrant.PtrOf(uint64(0)),
380+
},
381+
QuantizationConfig: &qdrant.QuantizationConfigDiff{
382+
Quantization: &qdrant.QuantizationConfigDiff_Binary{
383+
Binary: &qdrant.BinaryQuantization{
384+
AlwaysRam: qdrant.PtrOf(true),
383385
},
384386
},
385-
})
386-
if err != nil {
387-
return fmt.Errorf("failed to update HNSW for vector %s: %w", vectorName, err)
388-
}
387+
},
388+
})
389+
390+
if err != nil {
391+
return fmt.Errorf("failed to update HNSW config: %w", err)
389392
}
390393

391394
log.Printf("✓ HNSW indexing enabled for %s. Optimizer will build indexes in background.", collectionName)

0 commit comments

Comments
 (0)