11using System ;
22using Elastic . Xunit . XunitPlumbing ;
3- using Elasticsearch . Net ;
43using Nest ;
54using Tests . Analysis ;
65using Tests . Analysis . Tokenizers ;
76using Tests . Core . ManagedElasticsearch . Clusters ;
87using Tests . Domain ;
9- using Tests . Framework ;
108using Tests . Framework . Integration ;
11- using Tests . Framework . ManagedElasticsearch . Clusters ;
129using static Tests . Framework . Promisify ;
1310
1411namespace Tests . Mapping . Types . Core . Keyword
1512{
1613 [ SkipVersion ( "<5.2.0" , "This uses the normalizer feature introduced in 5.2.0" ) ]
1714 public class KeywordPropertyTests : PropertyTestsBase
1815 {
19- public KeywordPropertyTests ( WritableCluster cluster , EndpointUsage usage ) : base ( cluster , usage ) { }
16+ public KeywordPropertyTests ( WritableCluster cluster , EndpointUsage usage ) : base ( cluster , usage )
17+ {
18+ }
2019
2120 protected override ICreateIndexRequest CreateIndexSettings ( CreateIndexDescriptor create ) => create
2221 . Settings ( s => s
@@ -82,7 +81,8 @@ protected override ICreateIndexRequest CreateIndexSettings(CreateIndexDescriptor
8281
8382 protected override IProperties InitializerProperties => new Properties
8483 {
85- { "state" , new KeywordProperty
84+ {
85+ "state" , new KeywordProperty
8686 {
8787 DocValues = false ,
8888 Boost = 1.2 ,
@@ -97,10 +97,50 @@ protected override ICreateIndexRequest CreateIndexSettings(CreateIndexDescriptor
9797 Store = true ,
9898 Fields = new Properties
9999 {
100- { "foo" , new KeywordProperty { IgnoreAbove = 10 } }
100+ { "foo" , new KeywordProperty { IgnoreAbove = 10 } }
101101 }
102102 }
103103 }
104104 } ;
105+
106+ [ SkipVersion ( "<6.4.0" , "split_queries_on_whitespace is a new option https://github.com/elastic/elasticsearch/pull/30691" ) ]
107+ public class KeywordPropertySplitQueriesOnWhitespaceTests : PropertyTestsBase
108+ {
109+ public KeywordPropertySplitQueriesOnWhitespaceTests ( WritableCluster cluster , EndpointUsage usage ) : base ( cluster , usage ) { }
110+
111+ protected override ICreateIndexRequest CreateIndexSettings ( CreateIndexDescriptor create ) => create
112+ . Settings ( s => s
113+ . Analysis ( a => a
114+ . CharFilters ( t => Promise ( Analysis . CharFilters . CharFilterUsageTests . FluentExample ( s ) . Value . Analysis . CharFilters ) )
115+ . TokenFilters (
116+ t => Promise ( Analysis . TokenFilters . TokenFilterUsageTests . FluentExample ( s ) . Value . Analysis . TokenFilters ) )
117+ . Normalizers ( t => Promise ( Analysis . Normalizers . NormalizerUsageTests . FluentExample ( s ) . Value . Analysis . Normalizers ) )
118+ )
119+ ) ;
120+
121+ protected override object ExpectJson => new
122+ {
123+ properties = new
124+ {
125+ state = new
126+ {
127+ type = "keyword" ,
128+ split_queries_on_whitespace = true
129+ }
130+ }
131+ } ;
132+
133+ protected override Func < PropertiesDescriptor < Project > , IPromise < IProperties > > FluentProperties => f => f
134+ . Keyword ( b => b
135+ . Name ( p => p . State )
136+ . SplitQueriesOnWhitespace ( )
137+ ) ;
138+
139+
140+ protected override IProperties InitializerProperties => new Properties
141+ {
142+ { "state" , new KeywordProperty { SplitQueriesOnWhitespace = true } }
143+ } ;
144+ }
105145 }
106146}
0 commit comments