1. A system to generate a synonym dictionary, the system comprising: a computer processor; a memory coupled to the computer processor which, when executed by the computer processor, causes the computer processor to execute modules comprising: a receiving module to generate demand information based on a first plurality of queries, the first plurality of queries comprises a first query, the receiving module to identify search results based on the first query, the search results includes a first item, the receiving module to receive a selection over a network from a user that identifies the first item in the search results and responsive to the receipt of the selection: identify the first item as a first product, and store an association between the first query and the first product as an instance of demand information; and a processing module to identify a second plurality of queries as a first cluster of queries from the first plurality of queries based on the demand information, the demand information associated with the first cluster of queries is associated with a first plurality of search results that are associated with selections that identify items that are identified as the first product, the processing module to further identify a first synonym set based on an association map that comprises a first plurality of constraints identified from the second plurality of queries, the second plurality of queries includes a second query that includes at least two constraints and a third query that includes at least two constraints, the processing module utilizes the association map to identify the first synonym set including at least one constraint in the second query that matches at least one constraint in the third query, and the processing module to further store the first synonym set in a synonym dictionary.