1. A computer-based method for character string matching of a candidate character string with a plurality of character string records stored within a database, said method comprising: a) performing a clustering operation on at least a portion of the plurality of character string records, the clustering operation generating a plurality of clusters, each cluster comprising a plurality of character strings from the plurality of character string records, the plurality of character strings in each cluster are determined to be similar with respect to each other based on at least one characteristic of the plurality of character strings, the clustering engine optimized to maximize the similarity of character strings in each cluster and to maximize the dissimilarity between character strings of different clusters; b) generating a set of reference character strings from the plurality of clusters, the reference character strings being selected from the plurality of character strings in each cluster; c) generating an n-gram representation for one of the reference character strings in the set of reference character strings; d) generating an n-gram representation for the candidate character string; e) determining a similarity between the n-gram representations; f) repeating steps c) and e) for the remaining reference character strings in the set of identified reference character strings; and g) indexing the candidate character string within the database based on the determined similarities between the n-gram representation of the candidate character string and the n-gram representation of the reference character strings in the identified set.