RoleIndividual Contributor
TagsSemantic Search · CLIP Embeddings · Vector Database · Elasticsearch
TimelineJan — Mar 2024

CLIP embeddings + Elasticsearch

As an individual contributor on this project, I worked across the search stack. The core idea was to search on visual and semantic meaning rather than on the sparse tags: we generated image embeddings with a CLIP-based model and built a vector database over the client's collection, so a query could match on what an image actually depicts. Alongside that, we stood up an Elasticsearch server to index the images together with their structured metadata — artist information, pricing, media, gallery, and the rest — so the two could work in tandem.

Query flow & delivery

At query time, whatever the user enters — text or an uploaded image — is embedded into the same space and matched against the collection, with metadata filters narrowing the results. That combination lets a curator find pieces by feel and subject, not just by whatever tags happened to exist, which was the whole point given how sparse the original tagging was. Delivering it inside a roughly two-month window meant leaning on proven components — CLIP for embeddings, Elasticsearch for indexing and filtering — rather than building bespoke infrastructure, which is what made the short timeline achievable.