@@ -94,9 +94,6 @@ protected override LazyResponses ClientUsage() => Calls(
94
94
. Default ( "tfidf" , c => c
95
95
. DiscountOverlaps ( )
96
96
)
97
- . DFI ( "dfi" , df => df
98
- . IndependenceMeasure ( DFIIndependenceMeasure . ChiSquared )
99
- )
100
97
. DFR ( "dfr" , df => df
101
98
. AfterEffect ( DFRAfterEffect . B )
102
99
. BasicModel ( DFRBasicModel . D )
@@ -136,11 +133,6 @@ protected override LazyResponses ClientUsage() => Calls(
136
133
DiscountOverlaps = true
137
134
}
138
135
} ,
139
- { "dfi" , new DFISimilarity
140
- {
141
- IndependenceMeasure = DFIIndependenceMeasure . ChiSquared
142
- }
143
- } ,
144
136
{ "dfr" , new DFRSimilarity
145
137
{
146
138
AfterEffect = DFRAfterEffect . B ,
@@ -190,11 +182,95 @@ protected override void ExpectResponse(ICreateIndexResponse response)
190
182
similarities . Should ( ) . NotBeNull ( ) ;
191
183
similarities . Should ( ) . ContainKey ( "bm25" ) . WhichValue . Should ( ) . BeOfType < BM25Similarity > ( ) ;
192
184
similarities . Should ( ) . ContainKey ( "tfidf" ) . WhichValue . Should ( ) . BeOfType < DefaultSimilarity > ( ) ;
193
- similarities . Should ( ) . ContainKey ( "dfi" ) . WhichValue . Should ( ) . BeOfType < DFISimilarity > ( ) ;
194
185
similarities . Should ( ) . ContainKey ( "dfr" ) . WhichValue . Should ( ) . BeOfType < DFRSimilarity > ( ) ;
195
186
similarities . Should ( ) . ContainKey ( "ib" ) . WhichValue . Should ( ) . BeOfType < IBSimilarity > ( ) ;
196
187
similarities . Should ( ) . ContainKey ( "lmd" ) . WhichValue . Should ( ) . BeOfType < LMDirichletSimilarity > ( ) ;
197
188
similarities . Should ( ) . ContainKey ( "lmj" ) . WhichValue . Should ( ) . BeOfType < LMJelinekMercerSimilarity > ( ) ;
198
189
}
199
190
}
191
+
192
+ [ SkipVersion ( "<2.3.0" , "DFI Not supported prior to 2.3.0" ) ]
193
+ public class CreateIndexDFIApiTests : ApiIntegrationTestBase < WritableCluster , ICreateIndexResponse , ICreateIndexRequest , CreateIndexDescriptor , CreateIndexRequest >
194
+ {
195
+ public CreateIndexDFIApiTests ( WritableCluster cluster , EndpointUsage usage ) : base ( cluster , usage ) { }
196
+ protected override LazyResponses ClientUsage ( ) => Calls (
197
+ fluent : ( client , f ) => client . CreateIndex ( CallIsolatedValue , f ) ,
198
+ fluentAsync : ( client , f ) => client . CreateIndexAsync ( CallIsolatedValue , f ) ,
199
+ request : ( client , r ) => client . CreateIndex ( r ) ,
200
+ requestAsync : ( client , r ) => client . CreateIndexAsync ( r )
201
+ ) ;
202
+
203
+ protected override bool ExpectIsValid => true ;
204
+ protected override int ExpectStatusCode => 200 ;
205
+ protected override HttpMethod HttpMethod => HttpMethod . PUT ;
206
+ protected override string UrlPath => $ "/{ CallIsolatedValue } ";
207
+
208
+ protected override object ExpectJson { get ; } = new
209
+ {
210
+ settings = new Dictionary < string , object >
211
+ {
212
+ { "index.number_of_replicas" , 1 } ,
213
+ { "index.number_of_shards" , 1 } ,
214
+ { "similarity" , new
215
+ {
216
+ dfi = new
217
+ {
218
+ independence_measure = "chisquared" ,
219
+ type = "DFI"
220
+ }
221
+ }
222
+ }
223
+ }
224
+ } ;
225
+
226
+ protected override CreateIndexDescriptor NewDescriptor ( ) => new CreateIndexDescriptor ( CallIsolatedValue ) ;
227
+
228
+ protected override Func < CreateIndexDescriptor , ICreateIndexRequest > Fluent => d => d
229
+ . Settings ( s => s
230
+ . NumberOfReplicas ( 1 )
231
+ . NumberOfShards ( 1 )
232
+ . Similarity ( si => si
233
+ . DFI ( "dfi" , df => df
234
+ . IndependenceMeasure ( DFIIndependenceMeasure . ChiSquared )
235
+ )
236
+ )
237
+ ) ;
238
+
239
+ protected override CreateIndexRequest Initializer => new CreateIndexRequest ( CallIsolatedValue )
240
+ {
241
+ Settings = new Nest . IndexSettings ( )
242
+ {
243
+ NumberOfReplicas = 1 ,
244
+ NumberOfShards = 1 ,
245
+ Similarity = new Similarities
246
+ {
247
+ { "dfi" , new DFISimilarity
248
+ {
249
+ IndependenceMeasure = DFIIndependenceMeasure . ChiSquared
250
+ }
251
+ }
252
+ }
253
+ }
254
+ } ;
255
+
256
+ protected override void ExpectResponse ( ICreateIndexResponse response )
257
+ {
258
+ response . ShouldBeValid ( ) ;
259
+ response . Acknowledged . Should ( ) . BeTrue ( ) ;
260
+
261
+ var indexSettings = this . Client . GetIndexSettings ( g => g . Index ( CallIsolatedValue ) ) ;
262
+
263
+ indexSettings . ShouldBeValid ( ) ;
264
+ indexSettings . Indices . Should ( ) . NotBeEmpty ( ) . And . ContainKey ( CallIsolatedValue ) ;
265
+
266
+ var settings = indexSettings . Indices [ CallIsolatedValue ] ;
267
+
268
+ settings . Settings . NumberOfShards . Should ( ) . Be ( 1 ) ;
269
+ settings . Settings . NumberOfReplicas . Should ( ) . Be ( 1 ) ;
270
+ var similarities = settings . Settings . Similarity ;
271
+
272
+ similarities . Should ( ) . NotBeNull ( ) ;
273
+ similarities . Should ( ) . ContainKey ( "dfi" ) . WhichValue . Should ( ) . BeOfType < DFISimilarity > ( ) ;
274
+ }
275
+ }
200
276
}
0 commit comments