protected override void ExpectResponse(ISuggestResponse response) { /** === Handling Responses * Get the suggestions for a suggester by indexing into * the `.Suggestions` dictionary on the response */ var myCompletionSuggest = response.Suggestions["my-completion-suggest"]; myCompletionSuggest.Should().NotBeNull(); var suggest = myCompletionSuggest.First(); suggest.Text.Should().Be(Project.Instance.Name); suggest.Length.Should().BeGreaterThan(0); var option = suggest.Options.First(); option.Text.Should().NotBeNullOrEmpty(); option.Score.Should().BeGreaterThan(0); option.Payload.Should().NotBeNull(); option.Payload.Value <int>(Field <Project>(p => p.NumberOfCommits)).Should().BeGreaterThan(0); option.Contexts.Should().NotBeNull().And.NotBeEmpty(); option.Contexts.Should().ContainKey("color"); var colorContexts = option.Contexts["color"]; colorContexts.Should().NotBeNull().And.HaveCount(1); colorContexts.First().Category.Should().Be((Project.Projects.First().Suggest.Contexts.Values.SelectMany(v => v).First())); }
private static void AssertCompletionSuggestResponse(ISuggestResponse <Project> response) { var myCompletionSuggest = response.Suggestions["my-completion-suggest"]; myCompletionSuggest.Should().NotBeNull(); var suggest = myCompletionSuggest.First(); suggest.Text.Should().Be(Project.Instance.Name); suggest.Length.Should().BeGreaterThan(0); var option = suggest.Options.First(); option.Text.Should().NotBeNullOrEmpty(); option.Index.Should().Be("project"); option.Type.Should().Be("project"); option.Id.Should().NotBeNull(); option.Source.Should().NotBeNull(); option.Source.Name.Should().NotBeNullOrWhiteSpace(); option.Score.Should().BeGreaterThan(0); option.Contexts.Should().NotBeNull().And.NotBeEmpty(); option.Contexts.Should().ContainKey("color"); var colorContexts = option.Contexts["color"]; colorContexts.Should().NotBeNull().And.HaveCount(1); colorContexts.First().Category.Should().Be((Project.Projects.First().Suggest.Contexts.Values.SelectMany(v => v).First())); }
protected override void ExpectResponse(ISuggestResponse <Project> response) { /** === Handling Responses * Get the suggestions for a suggester by indexing into * the `.Suggestions` dictionary on the response */ AssertCompletionSuggestResponse(response); AssertTermSuggestResponse(response); AssertPhraseSuggestResponse(response); }
private static void AssertTermSuggestResponse(ISuggestResponse <Project> response) { var myTermSuggest = response.Suggestions["my-term-suggest"]; myTermSuggest.Should().NotBeNull(); var suggest = myTermSuggest.First(); suggest.Text.Should().Be(SuggestText); suggest.Length.Should().BeGreaterThan(0); suggest.Options.Should().NotBeNull().And.NotBeEmpty(); foreach (var opt in suggest.Options) { opt.Text.Should().NotBeNullOrWhiteSpace(); opt.Score.Should().BeGreaterThan(0); opt.Frequency.Should().BeGreaterThan(0); } }
protected override void ExpectResponse(ISuggestResponse response) { var myCompletionSuggest = response.Suggestions["my-completion-suggest"]; myCompletionSuggest.Should().NotBeNull(); var suggest = myCompletionSuggest.First(); suggest.Text.Should().Be(Project.Instance.Name); suggest.Length.Should().BeGreaterThan(0); var option = suggest.Options.First(); option.Text.Should().NotBeNullOrEmpty(); option.Score.Should().BeGreaterThan(0); var payload = option.Payload <ProjectPayload>(); payload.Should().NotBeNull(); payload.Name.Should().Be(Project.Instance.Name); payload.State.Should().NotBeNull(); }
/// <summary> /// AutoComplete function (phrase, term or completion in elasticsarch) /// </summary> /// <param name="SearchTerm"></param> /// <returns></returns> public ActionResult AutoSuggest(string SearchTerm) { // use phrase strategy // ISuggestResponse result = BusinessLogic.SearchManager.AutoSuggest(SearchTerm); List <object> lst = new List <object>(); // { new { name = "test"} , new { name = "fest" } , new { name = "nest" } }; var sugg = result.Suggestions["completion"].First().Options; if (sugg.Count() > 0) { foreach (SuggestOption opt in sugg) { lst.Add(new { name = opt.Text }); } } return(Json(new { search_results = lst }, JsonRequestBehavior.AllowGet)); }
private static void AssertPhraseSuggestResponse(ISuggestResponse <Project> response) { var myTermSuggest = response.Suggestions["my-phrase-suggest"]; myTermSuggest.Should().NotBeNull(); var suggest = myTermSuggest.First(); suggest.Text.Should().Be(PhraseSuggest); suggest.Length.Should().BeGreaterThan(0); suggest.Options.Should().NotBeNull().And.NotBeEmpty(); foreach (var opt in suggest.Options) { opt.Text.Should().NotBeNullOrWhiteSpace(); opt.Score.Should().BeGreaterThan(0); opt.Highlighted.Should().NotBeNullOrEmpty().And.Contain("</em>"); opt.CollateMatch.Should().BeTrue(); } }
protected override void ExpectResponse(ISuggestResponse response) { /** === Handling Responses * Get the suggestions for a suggester by indexing into * the `.Suggestions` dictionary on the response */ var myCompletionSuggest = response.Suggestions["my-completion-suggest"]; myCompletionSuggest.Should().NotBeNull(); var suggest = myCompletionSuggest.First(); suggest.Text.Should().Be(Project.Instance.Name); suggest.Length.Should().BeGreaterThan(0); var option = suggest.Options.First(); option.Text.Should().NotBeNullOrEmpty(); option.Score.Should().BeGreaterThan(0); option.Payload.Should().NotBeNull(); option.Payload.Value <int>(Field <Project>(p => p.NumberOfCommits)).Should().BeGreaterThan(0); }