示例#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 <PhraseSuggesterDescriptor <T>, PhraseSuggesterDescriptor <T> > suggest)
        {
            name.ThrowIfNullOrEmpty(nameof(name));
            suggest.ThrowIfNull(nameof(suggest));

            var desc = new PhraseSuggesterDescriptor <T>();
            var item = suggest(desc);

            Self.Suggest.Add(name, item);
            return(this);
        }
示例#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 <PhraseSuggesterDescriptor <T>, PhraseSuggesterDescriptor <T> > suggest) => Assign(a =>
        {
            name.ThrowIfNullOrEmpty(nameof(name));
            suggest.ThrowIfNull(nameof(suggest));
            if (a.Suggest == null)
            {
                a.Suggest = new Dictionary <string, ISuggestBucket>();
            }

            var desc           = new PhraseSuggesterDescriptor <T>();
            var item           = suggest(desc);
            IPhraseSuggester i = item;
            var bucket         = new SuggestBucket {
                Text = i.Text, Phrase = item
            };
            a.Suggest.Add(name, bucket);
        });