Every embedding provider claims to be best on some benchmark, and for a product catalog, that's largely beside the point. The benchmark that matters is your own catalog, your own query patterns, and how much the answer changes when your product descriptions include images, spec tables, and inconsistent formatting from a dozen different suppliers. That's a different problem than the one most embedding benchmarks are built to measure.
What actually matters for a product catalog
Three things tend to separate a good fit from a bad one for e-commerce specifically:
- Mixed-modality support. A catalog is text plus images plus structured spec fields, not clean prose. A model that only handles text forces you to build a separate pipeline for image search.
- Context window. Longer product pages, spec sheets, and reviews need enough context length that the embedding doesn't lose the parts that matter.
- Update cost. Whatever you pick, you'll be re-embedding constantly as the catalog changes — pricing and latency at that volume matter as much as raw retrieval accuracy.
Where the current options land
| Provider | Strength | Best fit |
|---|---|---|
| Voyage AI (voyage-3-large) | Highest retrieval quality at production scale | Text-heavy catalogs, general retrieval |
| Voyage AI (voyage-context-4) | Contextualized chunk embeddings, chunking handled by the model | Fast-changing catalogs where re-chunking is a maintenance burden |
| Cohere Embed v4 | 128K context window, built for mixed-modality documents | Product pages with embedded images, spec PDFs, slide-style catalogs |
| OpenAI text-embedding-3-large | Strong general-purpose quality, wide ecosystem support | Teams already standardized on OpenAI infrastructure |
The decision that matters more than the model: build the retrieval layer so the embedding model is an interchangeable component, not a foundation you'd have to rip out to change later. Both LlamaIndex and LangChain treat embeddings as a pluggable interface for exactly this reason — providers improve fast, and catalogs that locked into one 18 months ago are usually the ones stuck re-architecting today.
A practical starting point
For a text-and-image catalog with frequent updates, a reasonable default is Cohere Embed v4 for its native mixed-modality handling, or Voyage's contextualized models if chunking overhead is the bigger operational pain point. Neither choice needs to be permanent — that's the point of building the swap layer in from day one rather than treating the embedding model as a fixed foundation.