Searching a database involves creating an access structure including a
first tree data structure having a root node and at least one child node.
Each child node is associated with match data corresponding to a data
value of a field of a database record. Leaf child nodes of the first tree
data structure include a link to another tree data structure in the
access structure. Leaf child nodes of a further tree data structure
include a link to a database record. The tree structures are traversed
and scores are computed for the paths traversed that reflect the level of
matching between the match pattern data of the nodes in a path and a
search request to identify a database record that best matches the
request.