1. A computer-implemented method comprising: receiving a query image; generating a representation of the query image; identifying multiple image clusters that correspond to the query image; identifying multiple image search servers that correspond to the multiple image clusters that correspond to the query image; sending the representation of the query image to each of the multiple image search servers that correspond to the multiple image clusters that correspond to the query image; receiving, from each of the multiple image search servers that correspond to the multiple image clusters that correspond to the query image, data representing one or more result images; ranking the result images that are received from the multiple image search servers that correspond to the multiple image clusters that correspond to the query image; and providing the ranked result images in response to the query image.