“Hybrid” covers several combinations: full-text (BM25) plus dense, sparse plus dense, or a text-match filter plus dense.
Combine signals
Pinecone gives you three ways to combine a keyword signal with a dense signal. Metadata filtering is a separate lever that composes with all of them: it narrows the candidate pool before ranking, so an out-of-scope document can’t compete for a result slot.
RRF is a fusion method, not a synonym for hybrid search. It’s one way to merge ranked lists, while “hybrid search” is the broader approach of combining signals. See Reciprocal rank fusion.
Choose an approach
For a new document or text workload, use the Documents API. Declare onestring field with both full_text_search and embed, so Pinecone indexes its text for full-text search and embeds it for semantic search. Then either filter an embed search with a text-match filter on that field, or run a text search and an embed search and fuse them with RRF. See Integrated embedding.
If you generate your own embeddings, declare a dense_vector field alongside one or more full-text string fields instead. See the full-text search example schemas.
For an existing vector index workload, use the Vectors API.
Hybrid search on the Vectors API
The Vectors API supports two patterns:- Use a single index for dense and sparse vectors: Store both vectors per record and set the dense/sparse balance client-side by scaling the query vectors before the request (an
alphaweighting). This is the simplest single-request architecture, though the unbounded sparse scores need normalizing. - Use separate indexes for dense and sparse vectors: Store dense and sparse in two indexes linked by ID, query each, and merge the results client-side. This is more flexible, but there is more to manage.