NEWVectors or files. Pick a path.Start →
    Search Across Every Modality

    Multimodal Search Infrastructure

    Multimodal search is one retrieval stage in the multimodal data warehouse. Search across text, images, video, audio, and documents, then compose filter, rerank, and enrich stages on top to build precise, production-grade retrieval pipelines.

    Your search index only reads the text

    Most teams already have search. It works on the words and stops at everything else, which is where the content people actually look for tends to live.

    • A support call is recorded, transcribed, and indexed. Someone searches for the part where the customer points at the error on screen. Nothing comes back, because the error was on screen and never in the words.
    • A product catalog is indexed by filename and alt text. A search for a red canvas sneaker on a white background returns whatever someone remembered to type into the CMS.
    • A 40 page PDF is indexed as one blob of extracted text. The chart on page 12 that answers the question is not text at all, so it is not in the index.

    Why adding transcription does not fix it

    The usual next move is to bolt a transcription or captioning model onto the index you already have. Turn the video into words, put the words in Elasticsearch, ship it. That buys one real thing, spoken words become searchable, and it quietly leaves the rest of the problem in place.

    A caption describes a frame, it does not preserve one

    Once the visual is the string "man in a red jacket walking left", you cannot ask for something that looks like a reference image. The pixels are gone and there is nothing left to compare against.

    Everything collapses into one modality

    A text index can only compare text to text. A query in one modality can never reach content in another, so cross-modal retrieval is off the table by construction.

    You lose the timeline

    A transcript stitched into a single document tells you the video mentions the topic. It does not tell you at what second, so the person searching still has to scrub through it themselves.

    FeatureTraditional SearchMultimodal Search
    Data Types SupportedText onlyText, images, video, audio, documents
    Query TypesKeyword stringsNatural language, images, audio, cross-modal
    Understanding LevelLexical matchingSemantic meaning across modalities
    InfrastructureInverted index (Elasticsearch)Vector database + ML pipeline
    Retrieval MethodBM25 / TF-IDFVector similarity + hybrid fusion
    Result GranularityThe whole documentThe frame, scene, or page that matched

    What is multimodal search?

    Multimodal search represents content from every data type as vectors in a shared semantic space, so one query can retrieve across all of them. The same system holds text, images, video, and audio, and comparison happens on meaning instead of on keyword overlap.

    Text

    Documents, transcripts, and metadata, searched by meaning rather than by keyword overlap.

    "Find contracts mentioning liability clauses"

    Images

    Visual content searched by description, by similarity to another image, or by text embedded in the picture.

    "Show product photos similar to this reference image"

    Video

    Indexed at the frame and scene level, so spoken words and on-screen content are both retrievable.

    "Find the scene where the presenter shows the demo"

    Audio

    Searched by transcribed speech, by speaker, or by acoustic fingerprint.

    "Find podcast segments discussing pricing strategy"

    What Mixpeek does about it

    Five stages, in the order they run, from a raw file to a result you can act on.

    1

    Ingest

    Files land through one endpoint or a bucket trigger. Images, video, audio, PDFs, and text all go to the same place.

    2

    Extract

    Each file runs the extractors its type needs: embeddings, transcripts, OCR text, scene boundaries, and metadata.

    3

    Index

    Embeddings and structured metadata land in a namespace you control, with dense, sparse, and BM25 hybrid retrieval over the same records.

    4

    Retrieve

    Compose a retriever from stages: filter, feature search, rerank. It is a saved object your team shares, not query code copied per app.

    5

    Enrich

    Cluster or classify results against a taxonomy you define, so changing a policy is a re-label rather than a model retrain.

    What it looks like working

    Five things that are true once the pipeline is running, each of which you can check yourself.

    A text query returns a timestamp, not a file

    Searching for the moment a presenter opens the dashboard returns the video and the second it happens, because video is indexed at frame and scene level instead of as one document.

    An image is a valid query

    Hand the retriever a reference image and get visually similar items back. The pixels were embedded at extraction time, so there is still something to compare against.

    Keyword and vector run over the same records

    Dense, sparse, and BM25 hybrid search resolve against one namespace-scoped index, with metadata filters applied at query time rather than as a post-filter on results.

    The retrieval pipeline is an object, not code

    A retriever is a named composition of stages. Change a stage and every application calling that retriever by name picks it up, with no redeploy on their side.

    Your own extractor runs in the same pipeline

    When the built-in extractors do not cover your domain, a custom extractor writes into the same index and is queryable by the same retrievers.

    Calling a retriever by name, with a filter applied before the vector stage runs.

    multimodal_search.py
    from mixpeek import Mixpeek
    
    client = Mixpeek(api_key="YOUR_API_KEY")
    
    # Search across all modalities with a text query
    results = client.retrievers.execute(
        "my-multimodal-retriever",
        inputs={"query": "product demo showing the dashboard"},
        filters={
            "AND": [
                {"key": "status", "value": "published", "operator": "eq"}
            ]
        },
        limit=20
    )
    
    for result in results["documents"]:
        print(f"{result.modality}: {result.score:.3f} - {result.source}")

    Frequently Asked Questions

    What is multimodal search?

    Multimodal search is a retrieval approach that understands and searches across multiple data types (text, images, video, audio, and documents) using a unified system. Unlike traditional text-only search, multimodal search uses ML models to extract meaning from every modality, enabling queries like searching a video library with a text description or finding similar images using natural language.

    How does multimodal search differ from text search?

    Traditional text search relies on keyword matching (BM25, TF-IDF) against text documents. Multimodal search uses neural embedding models to represent content from any modality as vectors in a shared semantic space. This enables semantic understanding, cross-modal queries such as text-to-image, and retrieval based on meaning rather than exact keyword overlap.

    Why is transcribing video into text not enough?

    Transcription makes spoken words searchable and leaves the rest of the problem in place. A caption describes a frame but does not preserve it, so once the visual is a string you can no longer query it with a reference image. Everything also collapses into a single modality, which means a text index can only compare text to text. Mixpeek keeps the visual embeddings alongside the transcript, so both are queryable and results resolve to the frame or scene that matched.

    What file types does Mixpeek's multimodal search support?

    Mixpeek supports a wide range of file types including images (JPEG, PNG, WebP, TIFF), video (MP4, MOV, AVI, MKV), audio (MP3, WAV, FLAC), documents (PDF, DOCX, PPTX), and plain text. Files are automatically processed through the appropriate extraction pipeline based on their type.

    Can I search video content with text queries?

    Yes. Mixpeek extracts features from video at the frame and scene level, including visual embeddings, transcribed speech, OCR text, and scene descriptions. You can then search this content with natural language queries and get results pinpointed to specific timestamps within the video.

    What is cross-modal retrieval?

    Cross-modal retrieval is the ability to query in one modality and retrieve results in another. For example, you can submit a text query and retrieve matching video frames, or provide an image and find related audio clips. This works by mapping all content into a shared embedding space where similarity can be measured across modalities.

    How does multimodal search work with RAG?

    Multimodal search serves as the retrieval layer in Retrieval-Augmented Generation (RAG) pipelines. Instead of limiting RAG to text chunks, Mixpeek enables retrieval across images, video frames, audio segments, and documents. The retrieved multimodal context can then be passed to LLMs for generation, grounding responses in rich, diverse source material.

    Is multimodal search available as a self-hosted solution?

    Yes. Mixpeek offers BYO Cloud deployment where the entire multimodal search infrastructure runs in your own VPC. This gives you complete data sovereignty while leveraging the full feature set. We also offer managed cloud and dedicated cloud options depending on your requirements.

    What embedding models does Mixpeek support?

    Mixpeek supports a range of embedding models for different modalities including vision transformers for images and video, speech models for audio, and text embedding models for documents. You can also bring your own custom models and plug them into the extraction pipeline for domain-specific use cases.

    Run this on your own files

    Point Mixpeek at the storage you already have and search your video, images, audio, and documents the way this page describes. Build starts at $25/mo for up to 1M vectors.