12. One or more computing devices associated with a server computing system for determining one or more ranked candidate media in response to media query data generated at a mobile client device corresponding to a query media, the computing devices comprising: one or more processors; and one or more computer-readable non-transitory storage media embodying software that is configured when executed by one or more of the processors to: receive the media query data from the mobile device, the media query data comprising feature data of one or more features of a query media encoded by a similarity preserving hashing function into a plurality of hash bits and coordinate data for each of the one or more features; match the one or more of the features with one or more corresponding features of an media database using the feature data to identify one or more features of the query media within a predetermined hamming distance in a hash table from the one or more corresponding features of the media database to obtain one or more matched features in the media database, the features of the query media and the features of the media database each being assigned to one of a plurality of entries of the one or more hash tables using the plurality of hash bits as table indexes; determine one or more candidate media whose number of matched features exceed a matched feature threshold; generate a geometry similarity score between the query media and each of the one or more candidate media using the feature data and the coordinate data; rank the one or more candidate media based on the numbers of matched features and the geometry similarity score; and send the ranked candidate media to the mobile client device.
19. The computing devices of claim 12 , wherein the software is further configured to: obtain a plurality of subgroups of the plurality hash bits of each feature data, utilize each of the plurality of subgroups to create the one or more hash tables, and assign the feature data to an entry of a corresponding hash table.