1. A computer implemented method for annotating digital files, the method comprising: at a computer system having one or more processors and memory storing one or more programs that when executed by the one or more processors cause the computer system to perform the method: identifying a plurality of first features of a plurality of first digital files having one or more associated annotations; partitioning the plurality of first features into a plurality of subsets of the first features, including a respective subset of the first features; generating one or more classifiers based on the respective subset of the first features; identifying a plurality of second features of a respective second digital file; for each respective first digital file of two or more of the plurality of first digital files, determining a distance vector corresponding to a respective partial distance between a representation of features of the respective second digital file and a representation of features of the respective first digital file using a respective classifier; identifying a subset of the plurality of first digital files as candidate nearest neighbors to the respective second digital file based on the partial distances; determining scores corresponding to full distances between features of a plurality of the candidate nearest neighbors and features of the respective second digital file and ranking the determined scores; selecting a subset of the candidate nearest neighbors as matched files based on the ranking, wherein the matched files are associated with a respective annotation; and associating the respective annotation with the respective second digital file.