from haystack import Document, Pipeline from haystack.components.joiners import DocumentJoiner from haystack.components.retrievers.in_memory import ( InMemoryBM25Retriever, InMemoryEmbeddingRetriever, ) from haystack.document_stores.in_memory import InMemoryDocumentStore from haystack_integrations.components.embedders.sentence_transformers import ( SentenceTransformersDocumentEmbedder, SentenceTransformersTextEmbedder, ) documents = [ Document( id="hybrid-search", content="Hybrid retrieval combines keyword matching with semantic search.", ), Document( id="bm25-keywords", content="BM25 finds exact terms such as product names and error codes.", ), Document( id="vector-meaning", content="Embedding search finds related meaning despite different wording.", ), Document( id="coffee-notes", content="Coffee brewing depends on water temperature and grind size.", ), ]