One great way to improve the search experience on a website is to suggest alternate/corrected queries if the original ones were misspelled, similar to the “Did you mean …” provided by Google. If you are interested to implement this feature, I’ve some good news and some bad news for you. The good news is, this feature can be effortlessly implmeneted using the Solr Spellcheck search component. The bad news is, unfortunately the Spellcheck search component is not supported yet by the Sitecore 7/Solr search provider.

This article will show you an easy way to extend the search provider – using extension methods – to implement the Spellcheck feature. Two main steps are needed here; configure Solr to enable the Spellcheck component, and write the extension methods.

1. Enabling the Spellchecker in Solr

Edit your solrconfig.xml and locate the following element:

<searchComponent name="spellcheck" class="solr.SpellCheckComponent">

Under the searchComponent element, configure the field that will be used for building the suggested search queries. It should look like:

The Solr search provider in Sitecore 7 allows users to rank the search results using different types of boosting methods. This article shows how to use the Query-Time Boosting to sort the search results and highlights the common mistakes that developers should avoid.

Assume that you want to run a search query over a set of Sitecore items, each of which has a title and description fields, and you would like the score of the results that contain the search keyword in the title to be higher than the ones contain the search keyword in the description.

If you are about to implement an auto-compelte text box for your search page, then you are in the right place. This article will show you how to display search suggestions using Sitecore 7 and Solr Search Provider. Solr is a very powerful search platform which provides many indexing and query time analyzers. The NGram analyzer is used here to implement search auto-complete feature. Before I go through the details, please don’t do the following: