private string GetSnippet(SearchResult searchResult, LuceneResult luceneResult) { var sb = new StringBuilder(); if (!string.IsNullOrEmpty(luceneResult.TitleSnippet)) sb.Append(luceneResult.TitleSnippet + "..."); if (!string.IsNullOrEmpty(luceneResult.DescriptionSnippet)) sb.Append(luceneResult.DescriptionSnippet + "..."); if (!string.IsNullOrEmpty(luceneResult.TagSnippet)) sb.Append(luceneResult.TagSnippet + "..."); if (!string.IsNullOrEmpty(luceneResult.BodySnippet)) sb.Append(luceneResult.BodySnippet + "..."); if (!string.IsNullOrEmpty(luceneResult.AuthorSnippet)) sb.Append(luceneResult.AuthorSnippet + "..."); if (!string.IsNullOrEmpty(luceneResult.ContentSnippet)) sb.Append(luceneResult.ContentSnippet + "..."); var snippet = sb.ToString(); if (string.IsNullOrEmpty(snippet)) snippet = searchResult.Title; return snippet; }
private SearchResult GetSearchResultFromLuceneResult(LuceneResult luceneResult) { var result = new SearchResult(); var doc = luceneResult.Document; result.DisplayScore = luceneResult.DisplayScore; result.Score = luceneResult.Score; // set culture code of result result.CultureCode = string.Empty; var localeField = luceneResult.Document.GetField(Constants.LocaleTag); if (localeField != null) { int id; if (int.TryParse(localeField.StringValue, out id) && id >= 0) { result.CultureCode = LocaleController.Instance.GetLocale(id).Code; } else { result.CultureCode = Null.NullString; } } FillTagsValues(doc, result); result.Snippet = GetSnippet(result, luceneResult); return result; }