1. A computer-implemented method, comprising: under the control of one or more computer systems configured with executable instructions, obtaining images of a plurality of inventory items, each of the inventory items including one or more features; extracting, from each image, a plurality of feature descriptors of each respective inventory item represented in the images; clustering the feature descriptors into clusters and assigning a cluster center to represent each cluster of feature descriptors, each cluster center being of a first file size; compressing each cluster center from the first file size to a second file size, the first file size being larger than the second file size; storing the compressed cluster centers in a database for retrieval and use in image matching; assigning a visual word to each cluster center to generate a vocabulary of visual words describing the features of each respective inventory item represented in the images; indexing the visual words into an index storing information for each visual word and respective corresponding images; receiving a query image from a client computing device; extracting query feature descriptors from the query image; assigning a query visual word to each of the extracted feature descriptors; comparing one or more query visual words from the query image to at least a subset of the visual words in the index to identify a set of closest matching inventory images that at least partially match the query image based at least in part on a respective number of query visual words matching a respective number of visual words in the index, the set of closest matching inventory images being ranked by a matching score; retrieving a set of compressed cluster centers for each of the set of closest matching inventory images from the database; performing geometric verification of the set of closest matching inventory images by comparing at least a subset of the query feature descriptors to the set of cluster centers for each of the set of closest matching inventory images; ranking the set of closest matching inventory images based on the matching score, the matching score determined using parameters from a machine learned process, the parameters produced by the machine learning process using one or more training images to at least partially compensate for inaccuracy caused by compressing the cluster centers; and suggesting a highest ranking image as matching the query image.