Expand description
Embedder registry for model selection (bd-2mbe).
This module provides a registry of available embedding backends that allows:
- Listing available embedders with metadata
- Selecting embedder by name from CLI/config
- Validating model availability before use
- Providing a sensible default model
Note: The core types (RegisteredEmbedder, EmbedderRegistry) are
structurally identical to those in frankensearch_embed::model_registry.
They are kept locally for now due to build-system sync constraints (rch does
not sync sibling path dependencies). See frankensearch-embed for the
canonical definitions, which additionally include reranker support, two
additional Potion embedders, and richer directory-resolution helpers.
§Supported Embedders
| Name | ID | Dimension | Type | Notes |
|---|---|---|---|---|
| minilm | minilm-384 | 384 | ML | Default semantic embedder |
| hash | fnv1a-384 | 384 | Hash | Always available fallback |
§Example
ⓘ
use crate::search::embedder_registry::{EmbedderRegistry, get_embedder};
let registry = EmbedderRegistry::new(&data_dir);
// List available embedders
for info in registry.available() {
println!("{}: {} ({})", info.name, info.id, info.dimension);
}
// Get embedder by name
let embedder = get_embedder(&data_dir, Some("minilm"))?;Structs§
- Embedder
Registry - Embedder registry with data directory context.
- Registered
Embedder - Information about a registered embedder.
Constants§
- BAKEOFF_
ELIGIBILITY_ CUTOFF - Eligibility cutoff for bake-off (models must be released on/after this date).
- DEFAULT_
EMBEDDER - Default embedder name when none specified.
- HASH_
EMBEDDER - Hash embedder name (always available).
- REQUIRED_
ONNX_ FILES - Files required for any ONNX-based embedder.
Statics§
- EMBEDDERS
- Static registry of all supported embedders.
Functions§
- get_
embedder - Load an embedder by name (or default if None).
- get_
embedder_ info - Get embedder info for display/logging.