DCSIMG
September 2007 - Posts - Meron Fridman's Blog

Meron Fridman's Blog

September 2007 - Posts

MOSS Faceted Search
New in Codplex - MOSS Faceted Search : http://www.codeplex.com/FacetedSearch 
 
Project Description
MOSS Faceted Search is a set of web parts that provide intuitive way to refine search results by category (facet).

The facets are implemented using SharePoint API and stored within native SharePoint METADATA store. The solution demonstrates following key features:
  • Grouping search results by facet
  • Displaying a total number of hits per facet value
  • Refining search results by facet value
  • Update of the facet menu based on refined search criteria
  • Displaying of the search criteria in a Bread Crumbs
  • Ability to exclude the chosen facet from the search criteria
  • Flexibility of the Faceted search configuration and its consistency with MOSS administration

Demo1.png

The beauty of the chosen approach is that it doesn't matter how facets are crawled into the METADATA store. Any core MOSS functionality will work the same: indexing through BDC, external web sites via HTTP protocols, or local sharepoint sites, libraries, lists. As soon as the content is indexed and META tag assigned, it is available for facets.
MOSS Custom search results page- add rank chart

 

With simple XSLT template you can add small chart that displays the rank for each item in the Search Core Results Web Part. You may find it useful especially when you sort by modified date.

Add the following template to the XSLT:

<!-- The rank chart disply for each result is prepared here -->

<xsl:template name="DisplayRank">

 

            <xsl:param name="rank" />

            <table cellpadding="0" height="8" cellspacing="4" align="right" width="150">

                  <tr>

                        <td align="left">

                              <table width="50px;" height="8"  cellpadding="0" cellspacing="0" style="border: 1px solid #000000;" align="left">

                                    <tr>

                                          <td>

                                                <table cellpadding="0" cellspacing="0" height="8" style="border: 0px solid #000000;">

                                                      <xsl:attribute name="width">

                                                            <xsl:value-of select="$rank div 10"/>&#37;

                                                      </xsl:attribute>

                                                      <tr >

                                                            <td style="background-color:#E4E4E4;">&#160;</td>

                                                      </tr>

                                                </table>

                                          </td>

                                    </tr>

                              </table>

                        </td>

                        <td width="70" align="left">

                              Rank :<xsl:value-of select="$rank div 10"/>&#37;

                        </td>

                  </tr>

            </table>

 

 

      </xsl:template>

 

Add in the  <xsl:template match="Result"> call to the template that you created before:

<xsl:call-template name="DisplayRank">

      <xsl:with-param name="rank" select="rank" />

</xsl:call-template>

That's it.

Click here to dowlnload the full xslt.