59
59
public class SourceConfirmedTextQueryTests extends ESTestCase {
60
60
61
61
private static final AtomicInteger sourceFetchCount = new AtomicInteger ();
62
- private static final IOFunction <LeafReaderContext , CheckedIntFunction <List <Object >, IOException >> SOURCE_FETCHER_PROVIDER =
63
- context -> docID -> {
62
+
63
+ private static IOFunction <LeafReaderContext , CheckedIntFunction <List <Object >, IOException >> sourceFetcherProvider () {
64
+ return context -> docID -> {
64
65
sourceFetchCount .incrementAndGet ();
65
- return Collections .< Object > singletonList (context .reader ().storedFields ().document (docID ).get ("body" ));
66
+ return Collections .singletonList (context .reader ().storedFields ().document (docID ).get ("body" ));
66
67
};
68
+ }
67
69
68
70
public void testTerm () throws Exception {
69
71
try (Directory dir = newDirectory (); IndexWriter w = new IndexWriter (dir , newIndexWriterConfig (Lucene .STANDARD_ANALYZER ))) {
@@ -84,7 +86,7 @@ public void testTerm() throws Exception {
84
86
IndexSearcher searcher = newSearcher (reader );
85
87
86
88
TermQuery query = new TermQuery (new Term ("body" , "c" ));
87
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
89
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
88
90
89
91
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
90
92
ScoreDoc [] phraseHits = searcher .search (query , 10 ).scoreDocs ;
@@ -95,7 +97,7 @@ public void testTerm() throws Exception {
95
97
96
98
// Term query with missing term
97
99
query = new TermQuery (new Term ("body" , "e" ));
98
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
100
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
99
101
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
100
102
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
101
103
}
@@ -112,7 +114,7 @@ public void testMissingPhrase() throws Exception {
112
114
try (IndexReader reader = DirectoryReader .open (w )) {
113
115
IndexSearcher searcher = newSearcher (reader );
114
116
PhraseQuery query = new PhraseQuery ("missing_field" , "b" , "c" );
115
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
117
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
116
118
Explanation explanation = searcher .explain (sourceConfirmedPhraseQuery , 0 );
117
119
assertFalse (explanation .isMatch ());
118
120
@@ -141,7 +143,7 @@ public void testPhrase() throws Exception {
141
143
IndexSearcher searcher = newSearcher (reader );
142
144
143
145
PhraseQuery query = new PhraseQuery ("body" , "b" , "c" );
144
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
146
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
145
147
146
148
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
147
149
ScoreDoc [] phraseHits = searcher .search (query , 10 ).scoreDocs ;
@@ -152,7 +154,7 @@ public void testPhrase() throws Exception {
152
154
153
155
// Sloppy phrase query
154
156
query = new PhraseQuery (1 , "body" , "b" , "d" );
155
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
157
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
156
158
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
157
159
phraseHits = searcher .search (query , 10 ).scoreDocs ;
158
160
assertEquals (2 , phraseHits .length );
@@ -162,13 +164,13 @@ public void testPhrase() throws Exception {
162
164
163
165
// Phrase query with no matches
164
166
query = new PhraseQuery ("body" , "d" , "c" );
165
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
167
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
166
168
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
167
169
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
168
170
169
171
// Phrase query with one missing term
170
172
query = new PhraseQuery ("body" , "b" , "e" );
171
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
173
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
172
174
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
173
175
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
174
176
}
@@ -197,7 +199,7 @@ public void testMultiPhrase() throws Exception {
197
199
.add (new Term [] { new Term ("body" , "c" ) }, 1 )
198
200
.build ();
199
201
200
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
202
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
201
203
202
204
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
203
205
@@ -212,7 +214,7 @@ public void testMultiPhrase() throws Exception {
212
214
.add (new Term [] { new Term ("body" , "d" ) }, 1 )
213
215
.setSlop (1 )
214
216
.build ();
215
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
217
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
216
218
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
217
219
phraseHits = searcher .search (query , 10 ).scoreDocs ;
218
220
assertEquals (2 , phraseHits .length );
@@ -224,15 +226,15 @@ public void testMultiPhrase() throws Exception {
224
226
query = new MultiPhraseQuery .Builder ().add (new Term [] { new Term ("body" , "d" ), new Term ("body" , "c" ) }, 0 )
225
227
.add (new Term [] { new Term ("body" , "a" ) }, 1 )
226
228
.build ();
227
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
229
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
228
230
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
229
231
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
230
232
231
233
// Multi phrase query with one missing term
232
234
query = new MultiPhraseQuery .Builder ().add (new Term [] { new Term ("body" , "d" ), new Term ("body" , "c" ) }, 0 )
233
235
.add (new Term [] { new Term ("body" , "e" ) }, 1 )
234
236
.build ();
235
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
237
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
236
238
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
237
239
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
238
240
}
@@ -258,7 +260,7 @@ public void testMultiPhrasePrefix() throws Exception {
258
260
IndexSearcher searcher = newSearcher (reader );
259
261
260
262
MultiPhrasePrefixQuery query = new MultiPhrasePrefixQuery ("body" );
261
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
263
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
262
264
ScoreDoc [] phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
263
265
ScoreDoc [] sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
264
266
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -267,7 +269,7 @@ public void testMultiPhrasePrefix() throws Exception {
267
269
268
270
query = new MultiPhrasePrefixQuery ("body" );
269
271
query .add (new Term ("body" , "c" ));
270
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
272
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
271
273
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
272
274
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
273
275
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -277,7 +279,7 @@ public void testMultiPhrasePrefix() throws Exception {
277
279
query = new MultiPhrasePrefixQuery ("body" );
278
280
query .add (new Term ("body" , "b" ));
279
281
query .add (new Term ("body" , "c" ));
280
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
282
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
281
283
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
282
284
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
283
285
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -289,7 +291,7 @@ public void testMultiPhrasePrefix() throws Exception {
289
291
query .add (new Term ("body" , "a" ));
290
292
query .add (new Term ("body" , "c" ));
291
293
query .setSlop (2 );
292
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
294
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
293
295
phrasePrefixHits = searcher .search (query , 10 ).scoreDocs ;
294
296
sourceConfirmedHits = searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs ;
295
297
CheckHits .checkEqual (query , phrasePrefixHits , sourceConfirmedHits );
@@ -300,15 +302,15 @@ public void testMultiPhrasePrefix() throws Exception {
300
302
query = new MultiPhrasePrefixQuery ("body" );
301
303
query .add (new Term ("body" , "d" ));
302
304
query .add (new Term ("body" , "b" ));
303
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
305
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
304
306
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
305
307
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
306
308
307
309
// Multi phrase query with one missing term
308
310
query = new MultiPhrasePrefixQuery ("body" );
309
311
query .add (new Term ("body" , "d" ));
310
312
query .add (new Term ("body" , "f" ));
311
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
313
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
312
314
assertEquals (0 , searcher .count (sourceConfirmedPhraseQuery ));
313
315
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
314
316
}
@@ -338,7 +340,7 @@ public void testSpanNear() throws Exception {
338
340
0 ,
339
341
false
340
342
);
341
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
343
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
342
344
343
345
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
344
346
ScoreDoc [] spanHits = searcher .search (query , 10 ).scoreDocs ;
@@ -353,7 +355,7 @@ public void testSpanNear() throws Exception {
353
355
1 ,
354
356
false
355
357
);
356
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
358
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
357
359
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
358
360
spanHits = searcher .search (query , 10 ).scoreDocs ;
359
361
assertEquals (2 , spanHits .length );
@@ -367,7 +369,7 @@ public void testSpanNear() throws Exception {
367
369
0 ,
368
370
false
369
371
);
370
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
372
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
371
373
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
372
374
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
373
375
@@ -377,7 +379,7 @@ public void testSpanNear() throws Exception {
377
379
0 ,
378
380
false
379
381
);
380
- sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
382
+ sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
381
383
assertEquals (searcher .count (query ), searcher .count (sourceConfirmedPhraseQuery ));
382
384
assertArrayEquals (new ScoreDoc [0 ], searcher .search (sourceConfirmedPhraseQuery , 10 ).scoreDocs );
383
385
}
@@ -386,30 +388,28 @@ public void testSpanNear() throws Exception {
386
388
387
389
public void testToString () {
388
390
PhraseQuery query = new PhraseQuery ("body" , "b" , "c" );
389
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
391
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
390
392
assertEquals (query .toString (), sourceConfirmedPhraseQuery .toString ());
391
393
}
392
394
393
395
public void testEqualsHashCode () {
394
396
PhraseQuery query1 = new PhraseQuery ("body" , "b" , "c" );
395
- Query sourceConfirmedPhraseQuery1 = new SourceConfirmedTextQuery (query1 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
397
+ Query sourceConfirmedPhraseQuery1 = new SourceConfirmedTextQuery (query1 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
396
398
397
399
assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery1 );
398
400
assertEquals (sourceConfirmedPhraseQuery1 .hashCode (), sourceConfirmedPhraseQuery1 .hashCode ());
399
401
400
402
PhraseQuery query2 = new PhraseQuery ("body" , "b" , "c" );
401
- Query sourceConfirmedPhraseQuery2 = new SourceConfirmedTextQuery (query2 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
403
+ Query sourceConfirmedPhraseQuery2 = new SourceConfirmedTextQuery (query2 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
402
404
assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery2 );
403
405
404
406
PhraseQuery query3 = new PhraseQuery ("body" , "b" , "d" );
405
- Query sourceConfirmedPhraseQuery3 = new SourceConfirmedTextQuery (query3 , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
407
+ Query sourceConfirmedPhraseQuery3 = new SourceConfirmedTextQuery (query3 , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
406
408
assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery3 );
407
409
408
- Query sourceConfirmedPhraseQuery4 = new SourceConfirmedTextQuery (query1 , context -> null , Lucene .STANDARD_ANALYZER );
409
- assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery4 );
410
-
411
- Query sourceConfirmedPhraseQuery5 = new SourceConfirmedTextQuery (query1 , SOURCE_FETCHER_PROVIDER , Lucene .KEYWORD_ANALYZER );
412
- assertNotEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery5 );
410
+ PhraseQuery query4 = new PhraseQuery ("body" , "b" , "c" );
411
+ Query sourceConfirmedPhraseQuery6 = new SourceConfirmedTextQuery (query4 , sourceFetcherProvider (), Lucene .STANDARD_ANALYZER );
412
+ assertEquals (sourceConfirmedPhraseQuery1 , sourceConfirmedPhraseQuery6 );
413
413
}
414
414
415
415
public void testApproximation () {
@@ -461,7 +461,7 @@ public void testEmptyIndex() throws Exception {
461
461
try (IndexReader reader = DirectoryReader .open (w )) {
462
462
IndexSearcher searcher = newSearcher (reader );
463
463
PhraseQuery query = new PhraseQuery ("body" , "a" , "b" );
464
- Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
464
+ Query sourceConfirmedPhraseQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
465
465
assertEquals (0 , searcher .count (sourceConfirmedPhraseQuery ));
466
466
}
467
467
}
@@ -489,7 +489,7 @@ private static void checkMatches(Query query, String inputDoc, int[] expectedMat
489
489
doc .add (new KeywordField ("sort" , "2" , Store .NO ));
490
490
w .addDocument (doc );
491
491
492
- Query sourceConfirmedQuery = new SourceConfirmedTextQuery (query , SOURCE_FETCHER_PROVIDER , Lucene .STANDARD_ANALYZER );
492
+ Query sourceConfirmedQuery = new SourceConfirmedTextQuery (query , sourceFetcherProvider () , Lucene .STANDARD_ANALYZER );
493
493
494
494
try (IndexReader ir = DirectoryReader .open (w )) {
495
495
{
0 commit comments