Skip to content

Commit 1e6890f

Browse files
committed
Attribute SuggestBucket for serialization #3763
1 parent 184440d commit 1e6890f

File tree

2 files changed

+54
-0
lines changed

2 files changed

+54
-0
lines changed

src/Nest/Search/Suggesters/SuggestBucket.cs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,22 @@ public interface ISuggestBucket
2828

2929
public class SuggestBucket : ISuggestBucket
3030
{
31+
[DataMember(Name = "completion")]
3132
public ICompletionSuggester Completion { get; set; }
3233

34+
[DataMember(Name = "phrase")]
3335
public IPhraseSuggester Phrase { get; set; }
3436

37+
[DataMember(Name = "prefix")]
3538
public string Prefix { get; set; }
3639

40+
[DataMember(Name = "regex")]
3741
public string Regex { get; set; }
3842

43+
[DataMember(Name = "term")]
3944
public ITermSuggester Term { get; set; }
45+
46+
[DataMember(Name = "text")]
4047
public string Text { get; set; }
4148
}
4249
}
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
using System;
2+
using System.Globalization;
3+
using System.Text;
4+
using Elastic.Xunit.XunitPlumbing;
5+
using Elasticsearch.Net;
6+
using FluentAssertions;
7+
using FluentAssertions.Common;
8+
using Nest;
9+
using Newtonsoft.Json.Linq;
10+
using Tests.Core.Client;
11+
using Tests.Core.Extensions;
12+
using Tests.Core.Serialization;
13+
using Tests.Domain;
14+
15+
namespace Tests.Reproduce
16+
{
17+
public class Discuss179634
18+
{
19+
[U]
20+
public void SerializeCompletionSuggesterFieldsCorrectlyWhenDefaultFieldNameInferrerUsed()
21+
{
22+
var connectionPool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
23+
var settings = new ConnectionSettings(connectionPool, new InMemoryConnection())
24+
.DefaultFieldNameInferrer(p => p.ToUpper(CultureInfo.CurrentCulture))
25+
.DisableDirectStreaming();
26+
27+
var tester = new SerializationTester(new ElasticClient(settings));
28+
29+
var suggest = new SearchDescriptor<Project>()
30+
.Suggest(ss => ss
31+
.Completion("title", cs => cs
32+
.Field(f => f.Suggest)
33+
.Prefix("keyword")
34+
.Fuzzy(f => f
35+
.Fuzziness(Fuzziness.Auto)
36+
)
37+
.Size(5)
38+
)
39+
);
40+
41+
var expected = @"{""suggest"":{""title"":{""completion"":{""fuzzy"":{""fuzziness"":""AUTO""},""field"":""SUGGEST"",""size"":5},""prefix"":""keyword""}}}";
42+
43+
var result = tester.Serializes(suggest, expected);
44+
result.Success.Should().Be(true, result.DiffFromExpected);
45+
}
46+
}
47+
}

0 commit comments

Comments
 (0)