58
58
public class SourceConfirmedTextQueryTests extends ESTestCase {
59
59
60
60
private static final AtomicInteger sourceFetchCount = new AtomicInteger ();
61
- private static final IOFunction <LeafReaderContext , CheckedIntFunction <List <Object >, IOException >> SOURCE_FETCHER_PROVIDER =
62
- context -> docID -> {
61
+
62
+ private static IOFunction <LeafReaderContext , CheckedIntFunction <List <Object >, IOException >> sourceFetcherProvider () {
63
+ return context -> docID -> {
63
64
sourceFetchCount .incrementAndGet ();
64
65
return Collections .<Object >singletonList (context .reader ().document (docID ).get ("body" ));
65
66
};
67
+ }
66
68
67
69
public void testTerm () throws Exception {
68
70
try (Directory dir = newDirectory (); IndexWriter w = new IndexWriter (dir , newIndexWriterConfig (Lucene .STANDARD_ANALYZER ))) {
@@ -83,7 +85,7 @@ public void testTerm() throws Exception {
83
85
IndexSearcher searcher = newSearcher (reader );
84
86
85
87
TermQuery query = new TermQuery (new Term ("body" , "c" ));
86
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
88
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
87
89
88
90
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
89
91
ScoreDoc [] phraseHits = searcher .search (query , 10 ).scoreDocs ;
@@ -94,7 +96,7 @@ public void testTerm() throws Exception {
94
96
95
97
// Term query with missing term
96
98
query = new TermQuery (new Term ("body" , "e" ));
97
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
99
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
98
100
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
99
101
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
100
102
}
@@ -120,7 +122,7 @@ public void testPhrase() throws Exception {
120
122
IndexSearcher searcher = newSearcher (reader );
121
123
122
124
PhraseQuery query = new PhraseQuery ("body" , "b" , "c" );
123
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
125
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
124
126
125
127
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
126
128
ScoreDoc [] phraseHits = searcher .search (query , 10 ).scoreDocs ;
@@ -131,7 +133,7 @@ public void testPhrase() throws Exception {
131
133
132
134
// Sloppy phrase query
133
135
query = new PhraseQuery (1 , "body" , "b" , "d" );
134
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
136
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
135
137
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
136
138
phraseHits = searcher .search (query , 10 ).scoreDocs ;
137
139
assertEquals (2 , phraseHits .length );
@@ -141,13 +143,13 @@ public void testPhrase() throws Exception {
141
143
142
144
// Phrase query with no matches
143
145
query = new PhraseQuery ("body" , "d" , "c" );
144
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
146
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
145
147
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
146
148
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
147
149
148
150
// Phrase query with one missing term
149
151
query = new PhraseQuery ("body" , "b" , "e" );
150
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
152
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
151
153
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
152
154
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
153
155
}
@@ -176,7 +178,7 @@ public void testMultiPhrase() throws Exception {
176
178
.add (new Term [] { new Term ("body" , "c" ) }, 1 )
177
179
.build ();
178
180
179
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
181
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
180
182
181
183
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
182
184
@@ -191,7 +193,7 @@ public void testMultiPhrase() throws Exception {
191
193
.add (new Term [] { new Term ("body" , "d" ) }, 1 )
192
194
.setSlop (1 )
193
195
.build ();
194
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
196
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
195
197
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
196
198
phraseHits = searcher .search (query , 10 ).scoreDocs ;
197
199
assertEquals (2 , phraseHits .length );
@@ -203,15 +205,15 @@ public void testMultiPhrase() throws Exception {
203
205
query = new MultiPhraseQuery .Builder ().add (new Term [] { new Term ("body" , "d" ), new Term ("body" , "c" ) }, 0 )
204
206
.add (new Term [] { new Term ("body" , "a" ) }, 1 )
205
207
.build ();
206
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
208
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
207
209
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
208
210
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
209
211
210
212
// Multi phrase query with one missing term
211
213
query = new MultiPhraseQuery .Builder ().add (new Term [] { new Term ("body" , "d" ), new Term ("body" , "c" ) }, 0 )
212
214
.add (new Term [] { new Term ("body" , "e" ) }, 1 )
213
215
.build ();
214
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
216
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
215
217
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
216
218
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
217
219
}
@@ -237,7 +239,7 @@ public void testMultiPhrasePrefix() throws Exception {
237
239
IndexSearcher searcher = newSearcher (reader );
238
240
239
241
MultiPhrasePrefixQuery query = new MultiPhrasePrefixQuery ("body" );
240
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
242
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
241
243
ScoreDoc [] phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
242
244
ScoreDoc [] sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
243
245
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -246,7 +248,7 @@ public void testMultiPhrasePrefix() throws Exception {
246
248
247
249
query = new MultiPhrasePrefixQuery ("body" );
248
250
query .add (new Term ("body" , "c" ));
249
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
251
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
250
252
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
251
253
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
252
254
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -256,7 +258,7 @@ public void testMultiPhrasePrefix() throws Exception {
256
258
query = new MultiPhrasePrefixQuery ("body" );
257
259
query .add (new Term ("body" , "b" ));
258
260
query .add (new Term ("body" , "c" ));
259
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
261
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
260
262
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
261
263
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
262
264
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -268,7 +270,7 @@ public void testMultiPhrasePrefix() throws Exception {
268
270
query .add (new Term ("body" , "a" ));
269
271
query .add (new Term ("body" , "c" ));
270
272
query .setSlop (2 );
271
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
273
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
272
274
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
273
275
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
274
276
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -279,15 +281,15 @@ public void testMultiPhrasePrefix() throws Exception {
279
281
query = new MultiPhrasePrefixQuery ("body" );
280
282
query .add (new Term ("body" , "d" ));
281
283
query .add (new Term ("body" , "b" ));
282
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
284
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
283
285
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
284
286
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
285
287
286
288
// Multi phrase query with one missing term
287
289
query = new MultiPhrasePrefixQuery ("body" );
288
290
query .add (new Term ("body" , "d" ));
289
291
query .add (new Term ("body" , "f" ));
290
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
292
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
291
293
assertEquals (0 , searcher .count (sourceConfirmedPhraseQuery ));
292
294
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
293
295
}
@@ -317,7 +319,7 @@ public void testSpanNear() throws Exception {
317
319
0 ,
318
320
false
319
321
);
320
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
322
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
321
323
322
324
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
323
325
ScoreDoc [] spanHits = searcher .search (query , 10 ).scoreDocs ;
@@ -332,7 +334,7 @@ public void testSpanNear() throws Exception {
332
334
1 ,
333
335
false
334
336
);
335
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
337
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
336
338
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
337
339
spanHits = searcher .search (query , 10 ).scoreDocs ;
338
340
assertEquals (2 , spanHits .length );
@@ -346,7 +348,7 @@ public void testSpanNear() throws Exception {
346
348
0 ,
347
349
false
348
350
);
349
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
351
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
350
352
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
351
353
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
352
354
@@ -356,7 +358,7 @@ public void testSpanNear() throws Exception {
356
358
0 ,
357
359
false
358
360
);
359
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
361
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
360
362
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
361
363
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
362
364
}
@@ -365,30 +367,28 @@ public void testSpanNear() throws Exception {
365
367
366
368
public void testToString () {
367
369
PhraseQuery query = new PhraseQuery ("body" , "b" , "c" );
368
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
370
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
369
371
assertEquals (query .toString (), sourceConfirmedPhraseQuery .toString ());
370
372
}
371
373
372
374
public void testEqualsHashCode () {
373
375
PhraseQuery query1 = new PhraseQuery ("body" , "b" , "c" );
374
- Query sourceConfirmedPhraseQuery1 = new SourceConfirmedTextQuery (query1 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
376
+ Query sourceConfirmedPhraseQuery1 = new SourceConfirmedTextQuery (query1 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
375
377
376
378
assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery1 );
377
379
assertEquals (sourceConfirmedPhraseQuery1 .hashCode (), sourceConfirmedPhraseQuery1 .hashCode ());
378
380
379
381
PhraseQuery query2 = new PhraseQuery ("body" , "b" , "c" );
380
- Query sourceConfirmedPhraseQuery2 = new SourceConfirmedTextQuery (query2 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
382
+ Query sourceConfirmedPhraseQuery2 = new SourceConfirmedTextQuery (query2 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
381
383
assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery2 );
382
384
383
385
PhraseQuery query3 = new PhraseQuery ("body" , "b" , "d" );
384
- Query sourceConfirmedPhraseQuery3 = new SourceConfirmedTextQuery (query3 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
386
+ Query sourceConfirmedPhraseQuery3 = new SourceConfirmedTextQuery (query3 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
385
387
assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery3 );
386
388
387
- Query sourceConfirmedPhraseQuery4 = new SourceConfirmedTextQuery (query1 , context -> null , Lucene .STANDARD_ANALYZER );
388
- assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery4 );
389
-
390
- Query sourceConfirmedPhraseQuery5 = new SourceConfirmedTextQuery (query1 , SOURCE_FETCHER_PROVIDER , Lucene .KEYWORD_ANALYZER );
391
- assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery5 );
389
+ PhraseQuery query4 = new PhraseQuery ("body" , "b" , "c" );
390
+ Query sourceConfirmedPhraseQuery6 = new SourceConfirmedTextQuery (query4 , sourceFetcherProvider (), Lucene .STANDARD_ANALYZER );
391
+ assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery6 );
392
392
}
393
393
394
394
public void testApproximation () {
@@ -440,7 +440,7 @@ public void testEmptyIndex() throws Exception {
440
440
try (IndexReader reader = DirectoryReader .open (w )) {
441
441
IndexSearcher searcher = newSearcher (reader );
442
442
PhraseQuery query = new PhraseQuery ("body" , "a" , "b" );
443
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
443
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
444
444
assertEquals (0 , searcher .count (sourceConfirmedPhraseQuery ));
445
445
}
446
446
}
@@ -468,7 +468,7 @@ private static void checkMatches(Query query, String inputDoc, int[] expectedMat
468
468
doc .add (new KeywordField ("sort" , "2" , Store .NO ));
469
469
w .addDocument (doc );
470
470
471
- Query sourceConfirmedQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
471
+ Query sourceConfirmedQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
472
472
473
473
try (IndexReader ir = DirectoryReader .open (w )) {
474
474
{
0 commit comments