1. A method, comprising: receiving, using a processor of a computer, at least one keyword in a search request for an image; identifying, using the processor of the computer, a first set of images that are candidate matches to the requested image based on the at least one keyword, wherein each of the images in the first set of images has an image profile; receiving, using the processor of the computer, a first gesture-based image for a filter request; generating, using the processor of the computer, a new image profile based on the first gesture-based image; filtering, using the processor of the computer, the first set of images to identify a second set of images that are candidate matches to the first gesture-based image by comparing the new image profile with each image profile of the images in the first set of images; ranking, using the processor of the computer, the second set of images based on a closest matching keyword from the at least one keyword and based on each image profile of the images in the first set of images; and in response to receiving a second gesture-based image, refining, using the processor of the computer, the ranking of the second set of images.