1. A method, comprising: receiving, via a receiver, user input comprising description details and image information of a desired object; retrieving a plurality of objects from a database sharing one or more of the description details of the user input; retrieving an image of the desired object based on the image information and determining a contour of the desired object from the retrieved image; constructing a tree data structure based on the description details of the plurality of objects, the tree data structure comprising one or more attributes related to each of the plurality of retrieved objects; mapping the determined contour from the image of the desired object to an image of a predetermined contour shape, from among a plurality of predetermined contour shapes stored in the database, as a category contour shape; determining, via the processor, images of other retrieved objects that have a contour therein that is most closely matched by the image of the category contour shape from among the plurality of predetermined contour shapes, and displaying the images of the other retrieved objects having contours that are most closely matched by the image of the category contour shape; and performing a search query based on a user selected image from among the displayed images.