1. A computer-implemented method to generate a results set of images, comprising: receiving an original query from a user to search a plurality of images, each of which is associated with metadata; generating a first results set based on executing the original query relative to tags from the metadata associated with each image in said plurality of images; selecting, from the first results set, a specified number of results ranked highest in the first results set; generating a list comprising terms from tags from the metadata associated with each result of the specified number of results; for each term in the list, calculating a weight for that term based on a frequency of occurrence of that term in the list; generating an updated query comprising terms that are in the list and that are weighted based on said weights; generating a second results set based on executing the updated query relative to all metadata associated with each image in said plurality of images; and storing the second results set on a non-volatile or volatile computer readable storage medium.