Announcing Faceted Search v2.5

Starting Faceted Search 2.5, the solution relies on Microsoft Enterprise Library to address common software requirements in caching, logging, exception handling, policy injection etc., etc. More importantly, the 2.5 is a ground breaking release that is setting new targets for the Faceted Search. So, what’s new?


New Features

1. Caching – dramatically improves performance and decreases the load on the search engine

The solution uses 2 mechanisms for manageable cache: quick and long. I built the caching logic on assumption that user knows what he/she is looking for. The Search Facets web part will cache original result set and use it for the search refinement, paging and other postbacks. If the initial result set doesn’t provide full coverage of the search, the smart 2nd thread will run against real-time data providing adjustment to the cached match.

2. Synchronization with Core Search Results web part

The MOSS search is adjusted by several parameters that designer can set for the Core Search Results web part itself. These include remove duplicates, enable trimming, permit noise words. When you drop the Search Facets web part to the search results page, it will find the Core Search Results, read its parameters and sync the search query parameters to exactly match ones used by the Core.


3. Support for advanced search

It was the most wanted feature since Faceted Search 1.0. With 2.5, the Facets are rendered for advanced search although do not extend yet to ranges. The functionality is accomplished by extending SearchQuery structure to accommodate POST requests and sync back to GET query.


4. Match of search counters

This release introduced an updated search syntax that is design to provide matching counters to the core search. In fact, the new search query is using both KeywordQuery and FullTextQuery through the use of generics.

public class GenericQuery<T> : IDisposable where T : Query
    private EventHandler _customLogic;

    public ResultTableCollection Execute(EventArgs args)
        _customLogic(_query, args);
        return _query.Execute();


Additionally, the WHERE clause of the search query was modified to provide closer match to the Core counter.

5. Introducing Parent-Child relationships

By design, the facets can support only 2 levels. This release extended the Facets schema to allow management of the nested layers. That eases the pain of displaying complex hierarchies such as geography, or org chart etc. Parent-Child relationship can be set by facet name and facet value, or just by facet name.

<Column Name="BDCCity" DisplayName="City" ParentName="BDCState" />
<Column Name="BDCState" DisplayName="State" >
    <Mapping Match="Alberta"  ParentName="BDCCountry" ParentValue="Canada"/>    
    <Mapping Match="Manitoba" ParentName="BDCCountry" ParentValue="Canada" />
    <Mapping Match="Ontario"  ParentName="BDCCountry" ParentValue="Canada"/>
    <Mapping Match="Quebec"   ParentName="BDCCountry" ParentValue="Canada"/>

In the configuration above, the City facets will display only after the user chose the State. The State itself will match the country of origin.

6. Extending search to logical “OR” queries

Original facets always represent “AND” queries. That implies ability to narrow the search results by adding extra criteria. In this release I prototyped the way to expand the search by adding additional matches to the criteris. This in fact resulted in rewamped the Bread Crumbs UI. Proviuded now out-of-the-box support for languages is a good example of how “OR” queries empower the search.

7. Simplified web part properties

The 2.5 release is friendly to modifications of the web part properties. I have all properties classified and broken down to groups for each of the web parts.


8. Other

There are lots and lots of numerous fixes and enhancements, including improved security validation, code refactoring, extending facet sorting, support of quoted search and duplicates etc., etc.

What’s next

It’s my privilege to say that we have a team now that helps to shape new releases and brainstorm the furutre of the Faceted Search. In present we are looking at AJAX and SilverLight and hopefully you’ll start seeing more and more power of Facets in the near future.

Leonid Lyublinski

Senior Consultant

Microsoft Consultancy Services

Comments (5)

  1. Cross posted from the Enterprise Search Blog Starting Faceted Search 2.5, the solution relies on Microsoft

  2. Bob Mixon says:

    A new version, 2.5, of Faceted search for MOSS 2007 is now available. I haven&#39;t tried it yet but

  3. Romain Meraud says:

    still in beta at this time. It would be great to indicate that point.

  4. Patrik says:

    Is there a way to update the 2.0 version to the 2.5 version. Because I saw in the 2.5 installation manual that it checks if faceted search is not yet installed. Or should I deinstall 2.0, and copy-paste all my adaptations in the columns for settings part of the webpart?

    And add again the webpart to all my search pages? Or will it know that webpart still on my search pages?

  5. leonidly says:

    If you use a SharePoint Installer (packed with Faceted Search) for deployment, then the best way is to Remove 2.0 first using said SharePoint Installer. I recommend then to delete both Faceted Search web parts from the SC web part gallery. Faceted Search 2.0 definition files (.webpart) refer to the 2.0 run-time, however MOSS doesn’t upload them over into the SC web part gallery when Faceted Search 2.5 is deployed.

    Finally just run Installer as one-click new deployment.

    Note: you will have to update your search results page to benefit from 2.5 web parts.