Configuration for a feature extractor with field passthrough support.
A feature extractor processes source data (from buckets or collections) and
produces features (embeddings, extracted text, detected objects, etc.).
With field passthrough, you can also include selected source fields in the
output documents alongside the computed features.
Core Concepts:
1. Feature Extraction: Extractors compute features from input data
(e.g., text → embeddings, image → detections, video → scenes)
2. Field Passthrough: Selectively preserve source fields in output
(e.g., title, category, campaign_id from source → output documents)
3. Output Schema: Combination of passed-through fields + extractor outputs
(e.g., {title, category, text_embedding} all in one document)
How Field Passthrough Works:
1. Define which source fields to include via field_passthrough list
2. During processing, these fields are extracted from source
3. They appear in output documents at root level
4. Combine with extractor outputs for complete documents
5. Use target_path to rename fields for cleaner schemas
Field Selection Modes:
- Explicit (field_passthrough + include_all=False):
Only listed fields pass through. Clean, controlled output.
Example: passthrough=[title, category] → output has ONLY title, category, embedding
- **Inclusive** (include_all=True):
All source fields pass through, field_passthrough for renaming.
Example: source has 10 fields → output has all 10 + embedding
- **None** (no field_passthrough):
Only extractor outputs in documents.
Example: → output has ONLY embedding (no source fields)
Use Cases:
- Preserve Identifiers: Keep campaign_id, product_sku, order_id for tracking
- Enable Filtering: Pass category, status, department for query filters
- Maintain Context: Include title, description for display
- Track Metadata: Preserve author, created_at, source for lineage
- Business Logic: Keep priority, region, type for application logic
Common Patterns:
1. Minimal Passthrough (recommended):
field_passthrough=[{"source_path": "id"}], include_all=False
→ Clean output, only ID + extractor features
2. **Metadata Preservation**:
field_passthrough=[
{"source_path": "title"},
{"source_path": "category"},
{"source_path": "created_at"}
]
→ Document has context for display and filtering
3. **Field Renaming**:
field_passthrough=[
{"source_path": "doc_title", "target_path": "title"},
{"source_path": "metadata.author", "target_path": "author"}
]
→ Cleaner output schema with flattened fields
4. **Required Fields**:
field_passthrough=[
{"source_path": "campaign_id", "required": True},
{"source_path": "priority", "default": 0}
]
→ Ensures critical fields always present
Requirements:
- feature_extractor_name: REQUIRED - name of the extractor
- version: REQUIRED - extractor version (e.g., "v1")
- parameters: NOT REQUIRED - extractor-specific config (model, thresholds, etc.)
- input_mappings: NOT REQUIRED - maps extractor inputs to source fields
- field_passthrough: NOT REQUIRED - which source fields to preserve (default: none)
- include_all_source_fields: NOT REQUIRED - preserve all fields (default: false)