Retrieval

Best vector databases for images and video (2027)

A vector database stores embeddings and returns nearest neighbors. For images and video, those embeddings come from CLIP-family or natively multimodal models, and the media itself usually lives in object storage or another column. This list is ranked for image and video retrieval, not as an overall database comparison.

Updated · Part of What is an embedding index?

What a vector database does for images and video

This guide is published by a database vendor whose product is not ranked here; criteria and sources are listed so you can check the ranking.

The product stores vectors and answers nearest-neighbor queries. For pictures and clips, you embed frames or whole files with a multimodal model, then search with text or with another image. The bytes of the media usually live in object storage. A dedicated ANN service wins when query SLA, namespaces, hybrid fusion, or cluster scale is the contract.

How this list is ranked

The ranking is for image and video retrieval: multimodal embedders or blob storage the vendor documents, filters, open source, and a hosted option. It is not a latency bake-off. Last reviewed: October 2026.

  • Documented path for image or video embeddings (native modules, blobs, or you bring vectors).
  • Filters on metadata or payload next to the vector.
  • Self-host and managed options the vendor publishes.
  • Python clients the vendor documents.
  • Whether the engine stores the media or only the vector.

What changed going into 2027

The index is only as useful as the embedding model. These are model and engine notes, not a ranked model list. Checked 25 October 2026.

Gemini Embedding 2 (preview 10 March 2026, GA 22 April 2026) is a natively multimodal embedding model for text, images, video, audio, and PDF. Weaviate documents gemini-embedding-2 with near_media for image, video, and audio. Sources: https://ai.google.dev/gemini-api/docs/embeddings and https://docs.weaviate.io/weaviate/search/near-media

Amazon Nova Multimodal Embeddings encode text, documents, images, video, and audio into one vector space inside Bedrock Knowledge Bases (announced 20 January 2026). Source: https://aws.amazon.com/blogs/machine-learning/introducing-multimodal-retrieval-for-amazon-bedrock-knowledge-bases/

TwelveLabs Marengo Embed 3.0 is generally available as an embedding model in Amazon Bedrock Knowledge Bases (10 September 2026) for video, audio, and image search into a 512-dimensional space. Source: https://aws.amazon.com/blogs/machine-learning/video-and-image-search-in-amazon-bedrock-knowledge-base-using-marengo-3-0/

Open CLIP-family models remain the usual self-hosted image-text embedder. They are libraries, not databases.

Qdrant 1.16 (19 November 2025) added tiered multitenancy, ACORN filtered search, and inline HNSW storage. Qdrant 1.17 (20 February 2026) added relevance feedback queries and weighted reciprocal rank fusion. Sources: https://qdrant.tech/blog/qdrant-1.16.x/ and https://qdrant.tech/blog/qdrant-1.17.x/

When you may not need a separate vector database

You need nearest-neighbor search. You need a second database when another system already owns the vectors, or when hosted ANN, hybrid fusion, or a query SLA is the product. If the table that stores the stills or frames can declare the index and recompute on insert, a dedicated vector database is optional. That alternative is an embedding index on the source table, not a vector database row in the ranking below.

The vector databases, in rank order

Each row is a vector database or a vector library. Official sources were checked on 25 October 2026.

Weaviate documents CLIP-based multi2vec embeddings, near_image, and near_media (image, video, audio, depending on the vectorizer). Local CLIP is for self-hosted deployments; Weaviate Cloud uses API-based modules. Docs: https://docs.weaviate.io/weaviate/model-providers/transformers/embeddings-multimodal

Qdrant stores dense and sparse vectors with payload filters. You embed images or frames yourself, then upsert. Docs: https://qdrant.tech/documentation/

LanceDB stores multimodal blobs and vectors on Lance and serves ANN, embedded or hosted. Docs: https://docs.lancedb.com/

Milvus / Zilliz Cloud is a distributed vector database; you bring embeddings for images and video. Milvus 3.0 (16 July 2026) can index vectors that remain in object storage. Docs: https://github.com/milvus-io/milvus/

pgvector is a PostgreSQL extension. Pinecone is a managed vector index. Chroma stores embeddings, documents, and metadata, and documents multi-modal retrieval. OpenSearch k-NN is a search-engine k-NN plugin. Vespa documents nearest-neighbor search. FAISS is a similarity-search library, not a server.

Last reviewed

Vendor facts were checked on 25 October 2026. Hybrid parameters, cloud SKUs, and model names change; follow Related.

Vector databases ranked for image and video retrieval (last reviewed: Oct 2026)

Vector databases ranked for image and video retrieval (last reviewed: Oct 2026)
ToolRankWhat it isBest forLicenseHosted optionSource
Weaviate1Vector database with multi2vec modules, near_image, and near_mediaImage or video search when the collection and hybrid search are the productOpen source; see the Weaviate repoYes: Weaviate Cloud (API vectorizers; local CLIP is self-hosted)https://docs.weaviate.io/weaviate/search/near-media
Qdrant2Rust vector engine with payload filters; you bring image or frame embeddingsSelf-hosted or cloud ANN with rich filtersOpen source; see the Qdrant repoYes: Qdrant Cloudhttps://qdrant.tech/documentation/
LanceDB3Multimodal lake plus ANN on Lance; blobs can sit next to vectorsLance layout, embedded process, or lake-scale vectorsOpen source; Enterprise is commercialYes: LanceDB Enterprisehttps://docs.lancedb.com/
Milvus / Zilliz4Distributed vector database; embeddings for images and video are yours to produceScale-out ANN when the index is a dedicated clusterApache-2.0Yes: Zilliz Cloudhttps://github.com/milvus-io/milvus/
pgvector5Postgres extension for vector columns and ANNSQL joins when Postgres already holds the row; files usually in object storagePostgreSQL license (extension)Any managed Postgres (Supabase, Neon, and others)https://github.com/pgvector/pgvector
Pinecone6Managed vector index (dense, sparse, namespaces)A hosted ANN SLA other services already callCommercialYes: Pineconehttps://docs.pinecone.io/
Chroma7Open-source retrieval: embeddings, documents, metadata; documents multi-modal retrievalLocal-first retrieval that can grow to Chroma CloudApache-2.0Yes: Chroma Cloudhttps://docs.trychroma.com/docs/overview/introduction
OpenSearch k-NN8k-NN plugin on a search engine; media lives elsewhereTeams already running OpenSearch who need vector k-NN beside text searchApache-2.0 (OpenSearch)Yes: Amazon OpenSearch Service and self-hosthttps://docs.opensearch.org/latest/search-plugins/knn/knn-index/
Vespa9Serving engine with nearest-neighbor search over tensorsWhen ranking, tensors, and serving already live in VespaOpen source; see the Vespa repoYes: Vespa Cloudhttps://docs.vespa.ai/en/nearest-neighbor-search.html
FAISS10Similarity-search library for dense vectors, not a network serverIn-process indexes you embed in your own serviceMITNo (you host the process that links the library)https://github.com/facebookresearch/faiss

Where Pixeltable fits

This page is published by Pixeltable, which is not one of the tools ranked. Pixeltable is not a vector database and is not a row in the table. It is a multimodal database that can declare pxt.EmbeddingIndex on the image or frame column, so insert keeps the index current. Query with column.similarity(string=...) or similarity(image=...). That is enough for many image and video search apps (PyPI 0.7.20, Apache-2.0, Python 3.11+, TableModel, pxt CLI, FastAPIRouter, Pixeltable Cloud). Keep Weaviate, Qdrant, LanceDB, Milvus, pgvector, Pinecone, or Chroma when that engine is the serving contract. See Embedding index vs a vector database and Vector database alternatives for multimodal apps. How-tos: search a video library by text; serve image similarity search.

import pixeltable as pxt
from pixeltable.functions.huggingface import clip
from pixeltable.serving import FastAPIRouter
TableModel = pxt.model_base()
clip_embed = clip.using(model_id='openai/clip-vit-base-patch32')
class Images(TableModel, name='images'):
image: pxt.Image
caption: pxt.String | None
__indexes__ = [
pxt.EmbeddingIndex(image, embedding=clip_embed),
]
@pxt.query
def search_by_text(query: str, limit: int = 5):
sim = Images.image.similarity(string=query)
return (
Images.order_by(sim, asc=False)
.limit(limit)
.select(Images.image, Images.caption, sim)
)
@pxt.query
def search_by_image(img: pxt.Image, limit: int = 5):
sim = Images.image.similarity(image=img)
return (
Images.order_by(sim, asc=False)
.limit(limit)
.select(Images.image, Images.caption, sim)
)
api = FastAPIRouter(name='image_search')
api.add_insert_route(
Images,
path='/images',
inputs=[Images.caption],
uploadfile_inputs=[Images.image],
)
api.add_query_route(path='/search', query=search_by_text)
api.add_query_route(
path='/search-image',
query=search_by_image,
uploadfile_inputs=['img'],
)

Questions

Can I skip the vector database?
You can skip a separate vector database when the table that holds the stills or frames can declare the index. Pixeltable does that with EmbeddingIndex. You still need the ranking. Keep a dedicated engine when hosted ANN, hybrid fusion, or a query SLA is the product.
Where do the image and video files live?
Usually in object storage, with the vector database holding embeddings plus metadata. LanceDB can store blobs in the Lance table. Weaviate can store image blobs for multi2vec. FAISS holds only vectors in memory or on disk you manage.
Which embedding model should I use?
This page does not rank models. Gemini Embedding 2, Amazon Nova Multimodal Embeddings, TwelveLabs Marengo 3.0, and open CLIP-family models are documented options with sources in What changed. Use the same model at insert and at query.
Is this list biased?
The publisher of this page sells a multimodal database, not a vector database, and is not ranked in the table. The criteria are listed. Check the source URLs. A separate page covers when an embedding index on the source table is enough.
Is FAISS a vector database?
No. FAISS is a library for similarity search and clustering of dense vectors. You embed it in a process you run. It has no network protocol of its own.