/// <summary> /// The phrase suggester adds additional logic on top of the term suggester to select entire corrected phrases /// instead of individual tokens weighted based on ngram-langugage models. /// </summary> public SuggestDescriptor <T> Phrase(string name, Func <PhraseSuggestDescriptor <T>, PhraseSuggestDescriptor <T> > suggest) { name.ThrowIfNullOrEmpty("name"); suggest.ThrowIfNull("suggest"); var desc = new PhraseSuggestDescriptor <T>(); var item = suggest(desc); Self.Suggest.Add(name, item); return(this); }
/// <summary> /// The phrase suggester adds additional logic on top of the term suggester to select entire corrected phrases /// instead of individual tokens weighted based on ngram-langugage models. /// </summary> public SearchDescriptor <T> SuggestPhrase(string name, Func <PhraseSuggestDescriptor <T>, PhraseSuggestDescriptor <T> > suggest) { name.ThrowIfNullOrEmpty("name"); suggest.ThrowIfNull("suggest"); if (Self.Suggest == null) { Self.Suggest = new Dictionary <string, ISuggestBucket>(); } var desc = new PhraseSuggestDescriptor <T>(); var item = suggest(desc); IPhraseSuggester i = item; var bucket = new SuggestBucket { Text = i.Text, Phrase = item }; Self.Suggest.Add(name, bucket); return(this); }
public void PhraseSuggestDescriptorDirectGeneratorTest() { var phraseSuggestDescriptor = new PhraseSuggestDescriptor<ElasticsearchProject>() .Analyzer("body") .DirectGenerator(m => m.OnField("body").SuggestMode(SuggestMode.Always).MinWordLength(3)); var json = TestElasticClient.Serialize(phraseSuggestDescriptor); var expected = @"{ ""analyzer"": ""body"", ""direct_generator"": [ { ""field"": ""body"", ""suggest_mode"": ""always"", ""min_word_len"": 3 } ], }"; Assert.True(json.JsonEquals(expected), json); }
public void PhraseSuggestDescriptorTest() { var phraseSuggestDescriptor = new PhraseSuggestDescriptor<ElasticsearchProject>() .Analyzer("body") .OnField("bigram") .Size(1) .MaxErrors(0.5m) .GramSize(2); var json = TestElasticClient.Serialize(phraseSuggestDescriptor); var expected = @"{ ""field"": ""bigram"", ""analyzer"": ""body"", ""size"": 1, ""gram_size"": 2, ""max_errors"": 0.5, }"; Assert.True(json.JsonEquals(expected), json); }
public void PhraseSuggestDescriptorDirectGeneratorTest() { var phraseSuggestDescriptor = new PhraseSuggestDescriptor <ElasticsearchProject>() .Analyzer("body") .DirectGenerator(m => m.OnField("body").SuggestMode(SuggestMode.Always).MinWordLength(3)); var json = TestElasticClient.Serialize(phraseSuggestDescriptor); var expected = @"{ ""analyzer"": ""body"", ""direct_generator"": [ { ""field"": ""body"", ""suggest_mode"": ""always"", ""min_word_len"": 3 } ], }"; Assert.True(json.JsonEquals(expected), json); }
public void PhraseSuggestDescriptorTest() { var phraseSuggestDescriptor = new PhraseSuggestDescriptor <ElasticsearchProject>() .Analyzer("body") .OnField("bigram") .Size(1) .MaxErrors(0.5m) .GramSize(2); var json = TestElasticClient.Serialize(phraseSuggestDescriptor); var expected = @"{ ""field"": ""bigram"", ""analyzer"": ""body"", ""size"": 1, ""gram_size"": 2, ""max_errors"": 0.5, }"; Assert.True(json.JsonEquals(expected), json); }