PYTHON PACKAGE · HAYSTACK DOCUMENTSTORE

Haystack pipelines with zero embedder components

A normal Haystack pipeline needs two embedders — one for documents, one for queries. With Opensolr it needs none: everything embeds server-side on GPU, and retrieval fuses BM25 + kNN natively.

$ pip install opensolr-haystack

The whole pipeline

Count the embedder components. There are none.

from haystack import Document, Pipeline
from haystack_integrations.document_stores.opensolr import OpensolrDocumentStore
from haystack_integrations.components.retrievers.opensolr import OpensolrHybridRetriever

# credentials default to OPENSOLR_EMAIL / OPENSOLR_API_KEY env vars
store = OpensolrDocumentStore(index="mysite__dense", create_if_missing=True)

store.write_documents([
    Document(content="Hybrid search fuses BM25 with vector similarity"),
    Document(content="Cats sleep sixteen hours a day"),
])

pipe = Pipeline()
pipe.add_component("retriever", OpensolrHybridRetriever(document_store=store))
result = pipe.run({"retriever": {"query": "how do keyword and semantic search combine?"}})

Built for real pipelines

Standard Haystack contracts, managed Solr underneath.

Full DocumentStore protocol

write_documents with DuplicatePolicy (skip / overwrite / fail), filter_documents with the standard filter dict, counts, deletes — plus Secret-based credentials and full serde for saved pipelines.

Hybrid retriever

OpensolrHybridRetriever fuses BM25 and kNN scores per document via the native {!hybrid} Solr parser, with a tunable alpha balance and per-run overrides.

Plain Apache Solr underneath

Every index is a real Solr 9 core with the native /select API — facets, highlighting, spellcheck are all there when your pipeline needs more than retrieval.

Also available for: LangChain · LlamaIndex · MCP / AI Agents · Laravel

Simplify your pipeline tonight

Free 15-day trial, no credit card — the included AI quota covers the whole quickstart.