1. A method for attribute-based searching of product records in a product database, the method comprising: receiving, by a computer system, a query; identifying, by the computer system, tokens in the query; adding, to the tokens in the query, other tokens that are not found in the query, wherein the other tokens are conceptually related to words or phrases of the query; identifying, by the computer system, in the product database, a plurality of product records that include at least one token t of the tokens in the query, including using a string-edit distance similarity metric to match at least one of the tokens in the query to a dissimilar word in a product record of the plurality of product records based on similarity according to the string-edit distance similarity metric; for each product record d of the plurality of product records, including at least one token t of the tokens in the query, calculating, by the computer system, token-attribute scores tf c (t,d) for each attribute value c of the each product record d, the token-attribute scores tf c (t,d) decreasing with length of the attribute value c, wherein tf c (t,d) is calculated according to an equation tf c (t,d)=freq c (t,d)/(1+b c (L dc /L c −1)), where freq c (t,d) is a frequency of occurrence of token t in attribute value c of product record d, L c is an average length for values of attribute value c in a corpus, and L dc is the length of the attribute value c in product record d; assigning, by the computer system, a product record score to each product record d of the plurality of product records based on a summation of the token-attribute scores tf c (t,d) for the each product record d; ranking, by the computer system, the plurality of product records according to the product record scores, resulting in ranked product records; and returning, by the computer system, at least a portion of the ranked product records as a response to the query.