Originally Posted by: tappedtech I'm trying to set up keyword search through the web service (/WebServices3.asmx).
My first question is should I be using Catalog_InternalProduct_StoreSearchAdvanced or Catalog_InternalProduct_FindByCriteria?
The short answer is that it depends what you're trying to do.
The FindByCriteria method does allow you to perform a keyword search but it's fairly simplistic. What it does under the hood is perform a SQL LIKE query against the SKU, ProductName, ShortDescription, LongDescription, MetaDescription, MetaKeywords, and Keywords fields. So, for example, if you pass it a keyword value of "road bike" it will look for that
phrase. It will not perform any partial matches so a "mountain bike" product would not appear in the results.
The StoreSearchAdvanced method uses the new advanced search in BVC 2013 that uses SQL Server full-text search. You can actually tune the search algorithm via the admin (Options >> Site Settings >> Search) and weight each field differently (e.g. a match in the ProductName field is worth more than a match in the LongDescription field). This search will return more results because it performs partial matches, understands synonyms, and singular/plural forms. However, it also understands relevancy so the results are sorted by relevancy (like a search engine).
Note that the standard (i.e. non-advanced) BVC search method is not exposed via the web services API.
Originally Posted by: tappedtech Both methods request similar information. What information is required for these methods?
I've sent requests to both methods. The token comes back without any issues (not rejected or expired) but no results are provided.[/quote]
What properties of the ProductSearchCriteria object did you set? What about startRowIndex and maximumRows? I don't think that you will get a correct value for rowCount since this is normally passed back by reference when using the .NET code which isn't something that you can do with a web service call.