1. A computer-implemented process for searching for an image of desired image characteristics, comprising: using a computing device for, obtaining a set of images; for each of the set of images, computing visual features; a user selecting an example image, either a positive example image having visual features of a type of image being sought, or a negative example image not having visual features of the type of image being sought; learning a rule by computing a weighting of visual features of each of the set of images based only on the common image characteristics of one or more example images selected by the user to determine the most relevant of the images of the image set, wherein learning the rule is based on learning a distance metric which computes a score for each image returned in the set of images that indicates how similar each image returned in the set of images is to the examples of images with image characteristics sought to be found, comprising: computing a set of image histograms computed over the pixels in each image in the set of images; computing two distance metrics for each histogram of the set of image histograms; computing a structure histogram that represents the overall structure of each image in the set of images by applying a shape descriptor to the whole image; computing a texture histogram for each image in the set of images; and using the computed image histograms, the distance metrics for each of the computed image histograms, the structure histogram and the texture histogram for each image to compute a score for each image in the set of images that indicates how similar each image in the set of images is to the example images with image characteristics sought to be found and example images not having image characteristics sought to be found; and ranking the images of the image set based only on the learned rule, with the image characteristics sought to be found ranking higher than other images of the set of images.