Skip to main content

Querying Multiple Datasets

Pass multiple dataset IDs to search across them in a single call:
Datagate fans out to all datasets in parallel and merges the results.

Single-Model vs Multi-Model

Same embedding model

When all datasets use the same model (e.g., text-embedding-3-small):
  • Query text is embedded once
  • Results are ranked by raw similarity score (0–1, higher = more relevant)
  • Scores are directly comparable across datasets

Different embedding models

When datasets use different models (e.g., one uses text-embedding-3-small, another uses embed-v4.0):
  • Query text is embedded once per unique model (in parallel)
  • Results are ranked by Reciprocal Rank Fusion (RRF)
  • RRF uses 1/(k + rank) where rank is the result’s position within its dataset
  • This is fair across models because it only considers rank order, not raw scores
You don’t need to handle this — it’s automatic. The embedding_model field appears on results only in multi-model queries so you can see which model produced each result.

Partial Failures

If one dataset’s vector DB is unreachable, the other datasets still return results. Check response.warnings for details:

Pre-Computed Vectors

When using vector instead of text:
  • All datasets must use the same embedding model — the server can’t split a single vector across different models (returns 400 if they differ)
  • Vector dimension must match the model’s expected dimension