Patent ID: 8645417

Claim:
A query module for performing a name search, comprising: a processor; and a name search module configured to: receive input information from a user, the input information including at least an input name and supplemental information; determine a plurality of candidate names from the input name by a fuzzy matching operation performed using a tree structure that organizes characters of an indexed name hierarchically wherein a node in the tree structure corresponds to a character in an indexed name and wherein a path in the tree structure between a topmost root node and an empty child node spells out a component of an indexed name, wherein the fuzzy matching operation comprises: pointing a query pointer to a first character in the input name and pointing a tree pointer to a first character in the tree structure as a first search state; transitioning to a next search state by moving at least one of the query pointer and the tree pointer to a next character in the input name and a next node in the tree structure, respectively, wherein each search state is associated with a confidence value, until an empty child node is reached by the tree pointer; calculating a fuzzy match score for a component of the input name from the confidence values of each search state; and provide the plurality of candidate names with probability scores determined from the fuzzy match scores of the component names that correspond to the candidate name associated therewith, each probability score reflecting a degree of confidence that a corresponding candidate name is an appropriate match for the input name, the probability scores defining respective name search factor values; and a ranking module configured to: receive the plurality of name search factor values; generate, by the processor, at least one other type of factor value for each of the candidate names, the generating of the at least one other type of factor value comprising determining, for each candidate name, whether the supplemental information input by the user matches profile information associated with the candidate name to provide a query-based factor value; generate rank values associated with the respective candidate names using a ranking function, each rank value being based on an associated name search factor value and said at least one other type of factor value; and rank the candidate names based on the rank values.