Valori LogoValori

Indexing workflow

From collection creation to a searching against a built index.

Indexing workflow

Create collection
    ↓
Choose/configure an index (optional)
    ↓
Build runs asynchronously
    ↓
Poll for status
    ↓
Search

See Index overview first if you haven't already — it explains the node-level vs. collection-level distinction this workflow depends on.

1. Create the collection

Create a collection with an explicit dimension and metric. It starts with no index — search still works, as an exact (brute-force) scan.

2. Configure an index

Once you have enough records that an exact scan is too slow, call Configure a collection's index:

{ "type": "hnsw", "parameters": { "m": 16, "ef_construction": 200 } }

This returns 202 immediately — the build runs in the background. The collection keeps serving searches against whatever was active before (exact scan, or a previous index) while the new one builds.

3. Poll for completion

Call Collection index state until status settles. Both official SDKs offer a helper that does this polling loop for you rather than writing your own:

  • TypeScript: client.collection(name).index.wait()
  • Python: poll client.collection_index_status(name) yourself — no built-in wait helper exists on the Python client today.

4. Search

Once the index is active, Vector search uses it automatically — there's no separate "use this index" flag on the search request.

When to use the project-wide rebuild instead

Rebuild all indexes is a different tool for a different situation: reach for it only when you specifically need every collection's index rebuilt at once and can tolerate the write lock being held for the whole operation. For normal day-to-day indexing — one collection at a time, without blocking the rest of the project — use step 2 above.