private string FormatTfIdf(WeightedPosting posting) { IEnumerable <string> summands = Enumerable .Range(0, posting.TFs.Length) .Select(x => string.Format("{0:F5}×{1:F5} ({2})", posting.TFs[x], posting.IDFs[x], terms[x])); return(string.Join(" + ", summands.ToArray())); }
private Hit ConvertDocumentIdToHit(WeightedPosting posting, ParsedQuery query) { string formattedDocumentId = string.Format("{0:D6}", posting.PostingId); var document = new Document(formattedDocumentId); var snippet = new SnippetGenerator(query, document).GenerateSnippet(); return (new Hit { DocumentId = formattedDocumentId, Description = GetDescription(posting.PostingId, string.Format("№{0}", formattedDocumentId)), DebugInfo = new[] { string.Format("tf-idf = {0:F5} = {1}", Ranker.GetTfIdf(posting), FormatTfIdf(posting)), string.Format("ExactWordMatchCount = {0}", posting.ExactWordMatchCount) }, Snippet = string.Join(" … ", snippet.Skip(1).ToArray()), Title = snippet.First(), }); }