1. A non-transitory computer readable medium comprising instructions which, when executed by one or more devices, causes performance of operations comprising: obtaining a first image, of a particular product, taken by a device operated by a user; identifying a first physical location of the device when the image was taken by the device; identifying a subset location of the device based on location data associated with the first image, wherein the subset location is within the first physical location; based on the subset location and map information of the first physical location, filtering a set of images corresponding to a plurality of products to obtain a first subset of images that are stored in association with the first physical location; comparing the first image to the first subset of images to identify a product, from the plurality of products, that matches the particular product.