gemini-embedding-exp-03-07, 3072-d) to embed all files of an object — images, PDFs, video, audio, and text — into one unified vector per object in a single API call.
This is fundamentally different from other extractors: instead of producing one document per file, it collapses all of an object’s blobs into a single embedding representing the object as a whole.
View extractor details at api.mixpeek.com/v1/collections/features/extractors/gemini_multifile_extractor_v1
When to Use
| Use Case | Example |
|---|---|
| Product catalogs | Embed product photo + spec sheet + description together |
| Medical records | Embed scan + report + clinical notes as one object |
| Legal documents | Embed contract + exhibits + summary together |
| E-commerce | Embed product image + manual + label as one searchable unit |
| Object-level search | Find objects similar to a combination of inputs |
When NOT to Use
| Scenario | Recommended Alternative |
|---|---|
| Per-file granularity needed (search within a PDF) | document_extractor or multimodal_extractor |
| Single-file objects | image_extractor or text_extractor |
| Video frame-level search | multimodal_extractor |
How It Works
Standard extractors produce one document per blob (file). The Gemini Multifile Extractor uses arrayinput_mappings to collect multiple blob fields from one object into a single list, then sends all of them to Gemini Embedding 2 in one API call:
Array input_mappings
The key difference from other extractors is the input_mappings value: instead of mapping one field, you map a list of fields. All listed fields are collected from each object and embedded together.
"files") is the extractor’s input name. The value is a list of blob field names from your bucket schema. Each field can be an image, PDF, video, audio, or text blob.
Output
| Field | Type | Description |
|---|---|---|
gemini_multifile_extractor_v1_embedding | float[] (3072-d) | Unified embedding for all input files |
source_blob_count | int | Number of blobs embedded together |
source_blob_properties | string[] | Names of the blob fields that contributed |
Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
output_dimensionality | integer | 3072 | Embedding dimensions: 3072, 768, or 256 |
task_type | string | RETRIEVAL_DOCUMENT | Gemini task type. Use RETRIEVAL_DOCUMENT for indexing |
input_key | string | files | Must match the key in input_mappings |
Complete Collection Setup
Create a collection with array input_mappings
cURL
The value of
"files" is a list of field names, not a single string. This is what triggers the multi-file embedding behavior. All three fields are embedded together into one vector.Creating a Retriever
After indexing, create a retriever to search the embedded objects. Thefeature_search stage supports two query input modes for this extractor:
Single-item query (text or content mode)
Query with a single URL or text string — Gemini embeds it as-is and searches:
cURL
Multi-file query (multi_content mode)
Query with multiple files at once — Gemini embeds all of them together, matching how objects were indexed. This produces the most accurate similarity scores because the query vector is built the same way as the index vectors.
cURL
inputs:
cURL
multi_content is only valid for feature URIs backed by gemini_multifile_extractor. Using it with any other extractor returns a 400 error.Dimensionality Reduction
Gemini Embedding 2 supports truncated dimensions for storage cost reduction:| Dimensions | Storage per vector | Quality |
|---|---|---|
3072 (default) | 12 KB | Best |
768 | 3 KB | Near-identical |
256 | 1 KB | Good — ~2% quality loss |
Pricing
| Tier | Credits per object |
|---|---|
| ADVANCED | 10 credits |
Related
- Feature Search Stage — Search with
multi_contentquery mode - Image Extractor — Per-image embeddings (one document per image)
- Multimodal Extractor — Per-segment video/audio embeddings
- Text Extractor — Per-chunk text embeddings

