Skip to content

Commit 796b439

Browse files
committed
more test coverage for term/phrase suggest
1 parent 21740be commit 796b439

File tree

4 files changed

+96
-4
lines changed

4 files changed

+96
-4
lines changed

src/Nest.Tests.Integration/Search/QueryDSLTests.cs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -148,7 +148,7 @@ public void TermSuggest()
148148
{
149149
var results = this._client.Search<ElasticSearchProject>(s => s
150150
.Query(q => q.MatchAll())
151-
.TermSuggest("mySuggest", m => m.SuggestMode(SuggestMode.Always).Text("Sanskrti").Size(1).OnField("country"))
151+
.TermSuggest("myTermSuggest", m => m.SuggestMode(SuggestMode.Always).Text("Sanskrti").Size(1).OnField("country"))
152152
);
153153

154154
Assert.NotNull(results);
@@ -166,6 +166,29 @@ public void TermSuggest()
166166
Assert.AreEqual(results.Suggest.Values.First().First().Options.First().Text, "Sanskrit");
167167
}
168168

169+
[Test]
170+
public void PhraseSuggest()
171+
{
172+
var results = this._client.Search<ElasticSearchProject>(s => s
173+
.Query(q => q.MatchAll())
174+
.PhraseSuggest("myPhraseSuggest", m => m.Text("Nostrud frankufrter dseerunt ulalmco").Size(1).OnField("content"))
175+
);
176+
177+
Assert.NotNull(results);
178+
Assert.True(results.IsValid);
179+
180+
Assert.NotNull(results.Suggest);
181+
Assert.NotNull(results.Suggest.Values);
182+
183+
Assert.AreEqual(results.Suggest.Values.Count, 1);
184+
Assert.AreEqual(results.Suggest.Values.First().Count(), 1);
185+
186+
Assert.NotNull(results.Suggest.Values.First().First().Options);
187+
Assert.GreaterOrEqual(results.Suggest.Values.First().First().Options.Count(), 1);
188+
189+
Assert.AreEqual(results.Suggest.Values.First().First().Options.First().Text, "nostrud frankfurter deserunt ulalmco");
190+
}
191+
169192
[Test]
170193
public void TestCustomFiltersScore()
171194
{

src/Nest.Tests.Unit/Nest.Tests.Unit.csproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@
215215
<Compile Include="Search\SearchType\ScriptFieldTests.cs" />
216216
<Compile Include="Internals\Serialize\SerializeTests.cs" />
217217
<Compile Include="Search\Sort\SortTests.cs" />
218+
<Compile Include="Search\Suggest\PhraseSuggestTests.cs" />
218219
<Compile Include="Search\Suggest\TermSuggestTests.cs" />
219220
<Compile Include="Settings\UsePrettyResponseTests.cs" />
220221
<Compile Include="Test.Designer.cs">
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
using NUnit.Framework;
2+
using Nest.Tests.MockData.Domain;
3+
4+
namespace Nest.Tests.Unit.Search.Suggest
5+
{
6+
[TestFixture]
7+
public class PhraseSuggestTests : BaseJsonTests
8+
{
9+
[Test]
10+
public void PhraseSuggestDescriptorTest()
11+
{
12+
var phraseSuggestDescriptor = new PhraseSuggestDescriptor<ElasticSearchProject>()
13+
.Analyzer("body")
14+
.OnField("bigram")
15+
.Size(1)
16+
.MaxErrors(0.5m)
17+
.GramSize(2);
18+
19+
var json = TestElasticClient.Serialize(phraseSuggestDescriptor);
20+
21+
var expected = @"{
22+
""gram_size"": 2,
23+
""max_errors"": 0.5,
24+
""field"": ""bigram"",
25+
""analyzer"": ""body"",
26+
""size"": 1
27+
}";
28+
29+
Assert.True(json.JsonEquals(expected), json);
30+
}
31+
32+
[Test]
33+
public void PhraseSuggestDescriptorDirectGeneratorTest()
34+
{
35+
var phraseSuggestDescriptor = new PhraseSuggestDescriptor<ElasticSearchProject>()
36+
.Analyzer("body")
37+
.DirectGenerator(m => m.OnField("body").SuggestMode(SuggestMode.Always).MinWordLength(3));
38+
39+
var json = TestElasticClient.Serialize(phraseSuggestDescriptor);
40+
41+
var expected = @"{
42+
""direct_generator"": [
43+
{
44+
""field"": ""body"",
45+
""suggest_mode"": ""always"",
46+
""min_word_len"": 3
47+
}
48+
],
49+
""analyzer"": ""body""
50+
}";
51+
52+
Assert.True(json.JsonEquals(expected), json);
53+
}
54+
55+
56+
}
57+
}
Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,37 @@
11
using NUnit.Framework;
22
using Nest.Tests.MockData.Domain;
33

4-
namespace Nest.Tests.Unit.Search.Query.Bool
4+
namespace Nest.Tests.Unit.Search.Suggest
55
{
6+
67
[TestFixture]
78
public class TermSuggestTests : BaseJsonTests
89
{
910
[Test]
1011
public void TermSuggestDescriptorTest()
1112
{
12-
var termSuggestDescriptor = new TermSuggestDescriptor<ElasticSearchProject>().MaxEdits(3).MaxInspections(17).OnField("field1");
13+
var termSuggestDescriptor = new TermSuggestDescriptor<ElasticSearchProject>()
14+
.MaxEdits(3)
15+
.MaxInspections(17)
16+
.OnField("field1")
17+
.Size(3)
18+
.SuggestMode(SuggestMode.Missing);
19+
1320
var json = TestElasticClient.Serialize(termSuggestDescriptor);
1421

1522
var expected = @"{
23+
""suggest_mode"": ""missing"",
1624
""max_edits"": 3,
1725
""max_inspections"": 17,
18-
""field"": ""field1""
26+
""field"": ""field1"",
27+
""size"": 3
1928
}";
2029

2130
Assert.True(json.JsonEquals(expected), json);
2231
}
2332

2433

34+
35+
2536
}
2637
}

0 commit comments

Comments
 (0)