Skip to content

Commit 40dfb97

Browse files
russcamMpdreamz
authored andcommitted
Add token_limit and force_unigrams to phrase suggest (#3112)
Closes #3109 Conflicts: src/Tests/Search/Request/SuggestUsageTests.cs
1 parent b2f4ccd commit 40dfb97

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

src/Nest/Search/Suggesters/PhraseSuggester/PhraseSuggester.cs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,12 @@ public interface IPhraseSuggester : ISuggester
3535

3636
[JsonProperty("smoothing")]
3737
SmoothingModelContainer Smoothing { get; set; }
38+
39+
[JsonProperty("token_limit")]
40+
int? TokenLimit { get; set; }
41+
42+
[JsonProperty("force_unigrams")]
43+
bool? ForceUnigrams { get; set; }
3844
}
3945

4046
public class PhraseSuggester : SuggesterBase, IPhraseSuggester
@@ -48,6 +54,8 @@ public class PhraseSuggester : SuggesterBase, IPhraseSuggester
4854
public IPhraseSuggestHighlight Highlight { get; set; }
4955
public IPhraseSuggestCollate Collate { get; set; }
5056
public SmoothingModelContainer Smoothing { get; set; }
57+
public int? TokenLimit { get; set; }
58+
public bool? ForceUnigrams { get; set; }
5159
}
5260

5361
public class PhraseSuggesterDescriptor<T> : SuggestDescriptorBase<PhraseSuggesterDescriptor<T>, IPhraseSuggester, T>, IPhraseSuggester
@@ -62,6 +70,8 @@ public class PhraseSuggesterDescriptor<T> : SuggestDescriptorBase<PhraseSuggeste
6270
IPhraseSuggestHighlight IPhraseSuggester.Highlight { get; set; }
6371
IPhraseSuggestCollate IPhraseSuggester.Collate { get; set; }
6472
SmoothingModelContainer IPhraseSuggester.Smoothing { get; set; }
73+
int? IPhraseSuggester.TokenLimit { get; set; }
74+
bool? IPhraseSuggester.ForceUnigrams { get; set; }
6575

6676
public PhraseSuggesterDescriptor<T> GramSize(int? gramSize) => Assign(a => a.GramSize = gramSize);
6777

@@ -85,5 +95,9 @@ public PhraseSuggesterDescriptor<T> Collate(Func<PhraseSuggestCollateDescriptor<
8595

8696
public PhraseSuggesterDescriptor<T> Smoothing(Func<SmoothingModelContainerDescriptor, SmoothingModelContainer> selector) =>
8797
Assign(a => a.Smoothing = selector?.Invoke(new SmoothingModelContainerDescriptor()));
98+
99+
public PhraseSuggesterDescriptor<T> TokenLimit(int? tokenLimit) => Assign(a => a.TokenLimit = tokenLimit);
100+
101+
public PhraseSuggesterDescriptor<T> ForceUnigrams(bool? forceUnigrams = true) => Assign(a => a.ForceUnigrams = forceUnigrams);
88102
}
89103
}

src/Tests/Search/Request/SuggestUsageTests.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,9 @@ public SuggestUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cl
6060
},
6161
field = "name",
6262
gram_size = 1,
63-
real_word_error_likelihood = 0.5
63+
real_word_error_likelihood = 0.5,
64+
token_limit = 5,
65+
force_unigrams = false
6466
},
6567
text = "hello world"
6668
} },
@@ -133,6 +135,8 @@ public SuggestUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cl
133135
.Field(p => p.Name)
134136
.Text("hello world")
135137
.RealWordErrorLikelihood(0.5)
138+
.TokenLimit(5)
139+
.ForceUnigrams(false)
136140
)
137141
);
138142

@@ -208,7 +212,9 @@ public SuggestUsageTests(ReadOnlyCluster cluster, EndpointUsage usage) : base(cl
208212
},
209213
GramSize = 1,
210214
Field = "name",
211-
RealWordErrorLikelihood = 0.5
215+
RealWordErrorLikelihood = 0.5,
216+
TokenLimit = 5,
217+
ForceUnigrams = false
212218
}
213219
}
214220
},

0 commit comments

Comments
 (0)