9
9
10
10
import com .carrotsearch .randomizedtesting .annotations .ParametersFactory ;
11
11
12
- import org .elasticsearch .action .admin .indices .refresh .RefreshRequest ;
13
12
import org .elasticsearch .action .bulk .BulkItemResponse ;
14
13
import org .elasticsearch .action .bulk .BulkRequestBuilder ;
15
14
import org .elasticsearch .action .bulk .BulkResponse ;
16
15
import org .elasticsearch .action .delete .DeleteRequestBuilder ;
17
16
import org .elasticsearch .action .index .IndexRequestBuilder ;
18
17
import org .elasticsearch .action .search .SearchRequest ;
19
18
import org .elasticsearch .action .search .SearchResponse ;
19
+ import org .elasticsearch .action .support .WriteRequest ;
20
20
import org .elasticsearch .action .update .UpdateRequestBuilder ;
21
21
import org .elasticsearch .cluster .metadata .IndexMetadata ;
22
22
import org .elasticsearch .common .settings .Settings ;
@@ -243,12 +243,10 @@ public void testRestart() throws Exception {
243
243
244
244
private void assertRandomBulkOperations (String indexName , Function <Boolean , Map <String , Object >> sourceSupplier ) throws Exception {
245
245
int numHits = numHits (indexName );
246
- int totalBulkReqs = randomIntBetween (2 , 100 );
247
- long totalDocs = numHits ;
246
+ int totalBulkReqs = randomIntBetween (2 , 10 );
248
247
Set <String > ids = new HashSet <>();
249
-
250
- for (int bulkReqs = numHits ; bulkReqs < totalBulkReqs ; bulkReqs ++) {
251
- BulkRequestBuilder bulkReqBuilder = client ().prepareBulk ();
248
+ for (int bulkReqs = 0 ; bulkReqs < totalBulkReqs ; bulkReqs ++) {
249
+ BulkRequestBuilder bulkReqBuilder = client ().prepareBulk ().setRefreshPolicy (WriteRequest .RefreshPolicy .IMMEDIATE );
252
250
int totalBulkSize = randomIntBetween (1 , 100 );
253
251
for (int bulkSize = 0 ; bulkSize < totalBulkSize ; bulkSize ++) {
254
252
if (ids .size () > 0 && rarely (random ())) {
@@ -258,24 +256,15 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
258
256
bulkReqBuilder .add (request );
259
257
continue ;
260
258
}
261
- String id = Long .toString (totalDocs ++);
262
- boolean isIndexRequest = randomBoolean ();
259
+ boolean isIndexRequest = ids .size () == 0 || randomBoolean ();
263
260
Map <String , Object > source = sourceSupplier .apply (isIndexRequest );
264
261
if (isIndexRequest ) {
262
+ String id = randomAlphaOfLength (20 );
265
263
bulkReqBuilder .add (new IndexRequestBuilder (client ()).setIndex (indexName ).setId (id ).setSource (source ));
266
264
ids .add (id );
267
265
} else {
268
- boolean isUpsert = randomBoolean ();
269
- UpdateRequestBuilder request = new UpdateRequestBuilder (client ()).setIndex (indexName ).setDoc (source );
270
- if (isUpsert || ids .size () == 0 ) {
271
- request .setDocAsUpsert (true );
272
- } else {
273
- // Update already existing document
274
- id = randomFrom (ids );
275
- }
276
- request .setId (id );
277
- bulkReqBuilder .add (request );
278
- ids .add (id );
266
+ String id = randomFrom (ids );
267
+ bulkReqBuilder .add (new UpdateRequestBuilder (client ()).setIndex (indexName ).setId (id ).setDoc (source ));
279
268
}
280
269
}
281
270
BulkResponse bulkResponse = bulkReqBuilder .get ();
@@ -294,8 +283,7 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
294
283
}
295
284
assertFalse (bulkResponse .hasFailures ());
296
285
}
297
- client ().admin ().indices ().refresh (new RefreshRequest (indexName )).get ();
298
- assertThat (numHits (indexName ), equalTo (ids .size () + numHits ));
286
+ assertThat (numHits (indexName ), equalTo (numHits + ids .size ()));
299
287
}
300
288
301
289
private int numHits (String indexName ) throws Exception {
0 commit comments