Skip to main content
Chroma provides powerful querying capabilities to find relevant documents using semantic similarity and metadata filtering.

Query vs Get

Chroma has two main retrieval methods: query() finds the most similar records using vector similarity:
Use query when you want to find semantically similar documents.

Get: Direct Retrieval

get() retrieves specific records by ID or metadata filters:
Use get when you know which documents you want or need to filter without similarity.

Basic Query

Find similar documents using text:

Query Parameters

Query Input Types

You can query with different input types:
Provide exactly one query input type per call. Don’t mix query_texts, query_embeddings, query_images, or query_uris.

Number of Results

Control how many results to return:

Including Fields

Specify which fields to include in results:
Available fields:
  • documents: The document text
  • metadatas: Metadata for each record
  • distances: Similarity distances
  • embeddings: The embedding vectors
  • uris: URIs if stored
Default: ["documents", "metadatas", "distances"]

Batch Queries

Query multiple queries at once:

Filtering Queries

Combine similarity search with metadata filtering:

Metadata Filters

This finds similar documents that also match the metadata criteria.

Document Filters

Combined Filters

Filter by IDs

Restrict search to specific IDs:

Query Results Format

Query results are returned in a batched, columnar format:
Iterate over results:

Get Operations

Retrieve documents directly without similarity search:

Get by IDs

Get with Filters

Get with Pagination

Get Results Format

Get results are in columnar format (no batching):

The Search API (Advanced)

The Search API provides a more expressive query language for hybrid search, combining vector similarity with complex filtering and ranking.
The Search API is experimental and only available in distributed and hosted Chroma.

Key Components

The Search API uses:
  • K or Key: Reference to fields (metadata or special fields)
  • where(): Filter conditions
  • rank(): Ranking expression (e.g., KNN, RRF)
  • limit(): Pagination
  • select(): Choose which fields to return

Where Expressions

Build complex filters:

Ranking Expressions

Combine multiple ranking strategies:

Select Fields

Predefined keys:
  • K.DOCUMENT: Document text
  • K.EMBEDDING: Embedding vector
  • K.METADATA: All metadata
  • K.SCORE: Similarity score
  • K.ID: Record ID

Group By

Group results by metadata fields:

Read Levels

Control whether to read from the write-ahead log:

Search Result Format

Search returns column-major results:

Best Practices

Balance between performance and recall:
Combine similarity with metadata filters:
Process multiple queries in one call:
Reduce data transfer by including only required fields:

Next Steps

Metadata

Learn about metadata filtering

Embeddings

Understand how embeddings work

Performance

Optimize query performance

Filtering Guide

Advanced filtering techniques