Skip to content

Instantly share code, notes, and snippets.

@danstuken
Created November 2, 2011 17:26
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save danstuken/1334293 to your computer and use it in GitHub Desktop.
Save danstuken/1334293 to your computer and use it in GitHub Desktop.
Umbraco Fuzzy Search
var toSearchForm = searchTerm.Split(' ');
var searcher = ExamineManager.Instance.SearchProviderCollection["SiteQuickSearchSearcher"];
var criteria = searcher.CreateSearchCriteria(IndexTypes.Content);
var fieldsToSearch = new[]
{
"nodeName", "pageTitle", "menuText", "pageBody", "metaKeywords",
"metaDescription"
};
IBooleanOperation filter = criteria.GroupedOr(fieldsToSearch, toSearchForm.First().Fuzzy());
foreach (var term in toSearchForm.Skip(1))
filter = filter.Or().GroupedOr(fieldsToSearch, term.Fuzzy());
if (filter != null)
{
filter = filter.Not().Field("umbracoNaviHide", "1");
var compiled = filter.Compile();
var query = searcher.Search(compiled);
return new PageSearchResultBuilder().BuildSearchResults(from r in query
orderby r.Score descending
select new Node(r.Id));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment