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.
7. The method of claim 1 wherein assigning, by the computer system, the product record score to each product record d of the plurality of product records based on the summation of the token-attribute scores tf c (t,d) further comprises: calculating a token score tf(t,d) for each token t identified in the each product record as tf ⁡ ( t , d ) = ∑ c = 1 N ⁢ ⁢ w c ⁢ tf c ⁡ ( t , d ) where w c is a weighting factor for each attribute value c and N is a number of attribute values c in the each product record d.