Image Search for Artwork — Semantic Search over a Curated Art Collection
The client is an art curation company that designs venue-specific artwork collections built around chosen themes. They held a large library of artwork images with accompanying metadata but only sparse tags, and had to search through it daily to find pieces that fit a given brief — a slow, manual process when the tags don't cover what you're actually looking for. We built them an image search server that retrieves relevant artwork from either a text keyword or an uploaded image, with filters layered on top for searching across the other metadata fields. The whole thing was delivered on a tight timeline, January to March 2024, and deployed for the client.
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.