How can I get good search results from A2S?
The search results returned by A2S's ItemSearch operation don't match the results a visitor to Amazon.com sees when searching for the same phrase. This is probably because the tools A2S supplies for searching were not designed to allow us to duplicate the functionality of Amazon.com. After all, if you want to return the same exact results as Amazon, you can link directly to Amazon's search results using a link provided by the "Build Links" tool in Associates Central.
Instead the ItemSearch operation is designed for supporting specifc searches for niche sites. For example, a music site might search just the Music and MP3Downloads search indexes (or the music-related browse nodes) while a site about Home Audio might search just the Electronics index.
Using a specifc search index or searching specific browse nodes works well for single-topic niche sites and will probably give more relevant results for people interested in the topic than a general search at Amazon would.
But, for a general shopping site, that technique doesn't work because there's no context provided for you to use to narrow the search.
For more general searches, the developers of A2S added the All search index (which, unfortunately, is only supported for the US domain). Using All as the search index, A2S does a quick search of all search indexes, returning a few products from each. Combining an All search with other features such as Search Bins, you can duplicate some of the functionality of Amazon's search, but not quite.
So, it's up to us to figure out how to use the tools A2S gives us to produce the kinds of search results we think best for our site's visitors.
One thing you can do is to ask for more information from the user to define the context. In addition to asking for the search phrase, you could display a drop-down list of categories. When performing the search, map the selected category to a search index.
For more specific searches, you could do the above except map each category to a specific browse node and search index.
A technique for general searches takes advantage of the fact that you are allowed to cache information from A2S for a period of time. Every time your site calls A2S to get information on a product, a cache database is updated with the product's data. When a visitor performs a search, your site does an ItemSearch to find a few matching products and adds their information to the database. Then the site searches the database and returns matching products. This allows the site to have more control over the order of the results (i.e. products with titles matching the search phrase are listed first) and allows the site to return more results than a single ItemSearch would. (Periodically, old data in the database must be purged to remain in compliance with the A2S license.)
In conclusion, it's important to think of the ItemSearch operation as a tool for you to use to build your own search results, not as a general purpose Amazon search engine.