Exemplo n.º 1
0
        /// <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);
        }
Exemplo n.º 2
0
        /// <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);
        }
Exemplo n.º 5
0
        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);
        }
Exemplo n.º 6
0
        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);
        }