Skip to main content
Search your documents and retrieve the most relevant chunks based on a natural language query.
from morphik import Morphik

db = Morphik("your-uri")

chunks = db.retrieve_chunks(
    query="What are the quarterly results?",
    filters={"department": {"$eq": "sales"}},
    k=5,
    min_score=0.0,
    use_colpali=True,
    folder_name="/reports",
    padding=1,
    output_format="url"
)

for chunk in chunks:
    print(f"Score: {chunk.score:.2f}")
    print(f"Content: {chunk.content[:200]}...")
For advanced filtering with operators like $and, $or, $gte, $in, see Metadata Filtering.

Parameters

ParameterTypeDefaultDescription
querystringrequiredNatural language search query
kint4Maximum number of chunks to return
min_scorefloat0.0Minimum similarity score threshold
use_colpalibooleantrueUse Morphik multimodal embeddings (better for images/tables)
filtersobjectnullMetadata filters (see Metadata Filtering)
paddingint0Extra pages to include before/after matches (multimodal only)
output_formatstring"base64"Image format: base64, url, or text

Response

[
  {
    "document_id": "doc_abc123",
    "chunk_number": 3,
    "content": "Q4 revenue increased by 15% year-over-year...",
    "score": 0.89,
    "metadata": { "department": "sales" },
    "filename": "quarterly_report.pdf"
  }
]
Use use_colpali=true for documents with images, charts, or tables. Morphik multimodal embeddings provide significantly better retrieval accuracy for visual content.