One of my posts (Catalog classtypes and search functionality in the catalog system) described the search functionality in previous versions of the catalog system. We have now made the following enhancements to the search functionality. Incidentally, all these new features were driven by feedback from our customers.

1. Ability to search more than one category in one or more catalogs:  Commerce Server 2002 allowed searching a single category in a single catalog.   We have now added the ability to search multiple categories in one or more catalogs. In addition the searches can be both recursive and non-recursive. This feature is particularly useful where you have a set of similar catalogs and you want to search a specific set of categories in all the catalogs or if you want to restrict your search to a set of categories in a single catalog. 

2. Improved freetext search query support: Freetext searches in CS2002 were limited to keyword searches or And/Or inflectional searches. This made it difficult to perform complex searches like "return all the products containing the phrase 'black shoes' " or  "return all the products where the word 'black' is near  'shoes' ". In addition to providing the default search behavior of CS2002 we now allow you to specify an expression that is a valid for the ContainsTable  function thereby exposing the full power of Sql Server fulltext search engine.Anything you can do using  Sql Server fulltext search is now possible from the catalog system search. If you want to perform more complex  searches you can use this feature to constuct the search phrase that can return more detailed and targetted search results. If you are using Sql Server 2005 then this feature will also allow you to implement the Thesaurus feature when performing catalog searches.

3. Inventory integration:  One of the compelling features in Commerce Server 2007 is the addition of a new inventory resource and its tight and flexible integration with the Catalog and Orders systems. This allows you to manage inventory for products in your product catalog and also control the display of products on your site based on their inventory status. For eg you can use the search functionality to prevent out of stock products from being displayed on the site.

Performance improvements:

4. Updating fulltext catalogs: We have now fixed the way fulltext catalogs are updated. Once you set up your fulltext catalogs correctly, incremental updates will now trigger incremental updates on the fulltext catalogs. This will no longer cause your CPU to get busy everytime you update your fulltext catalog.

5. Performance improvement when performing freetext search  

6. Additional performance improvement when performing freetext searches on virtual catalogs