A search expression is received. A first plurality of values is determined for
a corresponding plurality of purchasable items. Each of the first plurality of
values is based on a similarity between the search expression and its corresponding
one of the purchasable items. A second plurality of values is determined for a
corresponding plurality of pairs of the purchasable items. Each of the second plurality
of values is based on a similarity between two purchasable items in a corresponding
one of the pairs. A corresponding optimum path between the search expression and
each of a subset of the purchasable items is determined based on at least one of
the first plurality of similarity values and at least one of the second plurality
of similarity values.