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 ;
@@ -242,12 +242,10 @@ public void testRestart() throws Exception {
242
242
243
243
private void assertRandomBulkOperations (String indexName , Function <Boolean , Map <String , Object >> sourceSupplier ) throws Exception {
244
244
int numHits = numHits (indexName );
245
- int totalBulkReqs = randomIntBetween (2 , 100 );
246
- long totalDocs = numHits ;
245
+ int totalBulkReqs = randomIntBetween (2 , 10 );
247
246
Set <String > ids = new HashSet <>();
248
-
249
- for (int bulkReqs = numHits ; bulkReqs < totalBulkReqs ; bulkReqs ++) {
250
- BulkRequestBuilder bulkReqBuilder = client ().prepareBulk ();
247
+ for (int bulkReqs = 0 ; bulkReqs < totalBulkReqs ; bulkReqs ++) {
248
+ BulkRequestBuilder bulkReqBuilder = client ().prepareBulk ().setRefreshPolicy (WriteRequest .RefreshPolicy .IMMEDIATE );
251
249
int totalBulkSize = randomIntBetween (1 , 100 );
252
250
for (int bulkSize = 0 ; bulkSize < totalBulkSize ; bulkSize ++) {
253
251
if (ids .size () > 0 && rarely (random ())) {
@@ -257,24 +255,15 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
257
255
bulkReqBuilder .add (request );
258
256
continue ;
259
257
}
260
- String id = Long .toString (totalDocs ++);
261
- boolean isIndexRequest = randomBoolean ();
258
+ boolean isIndexRequest = ids .size () == 0 || randomBoolean ();
262
259
Map <String , Object > source = sourceSupplier .apply (isIndexRequest );
263
260
if (isIndexRequest ) {
261
+ String id = randomAlphaOfLength (20 );
264
262
bulkReqBuilder .add (new IndexRequestBuilder (client ()).setIndex (indexName ).setId (id ).setSource (source ));
265
263
ids .add (id );
266
264
} else {
267
- boolean isUpsert = randomBoolean ();
268
- UpdateRequestBuilder request = new UpdateRequestBuilder (client ()).setIndex (indexName ).setDoc (source );
269
- if (isUpsert || ids .size () == 0 ) {
270
- request .setDocAsUpsert (true );
271
- } else {
272
- // Update already existing document
273
- id = randomFrom (ids );
274
- }
275
- request .setId (id );
276
- bulkReqBuilder .add (request );
277
- ids .add (id );
265
+ String id = randomFrom (ids );
266
+ bulkReqBuilder .add (new UpdateRequestBuilder (client ()).setIndex (indexName ).setId (id ).setDoc (source ));
278
267
}
279
268
}
280
269
BulkResponse bulkResponse = bulkReqBuilder .get ();
@@ -293,8 +282,7 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
293
282
}
294
283
assertFalse (bulkResponse .hasFailures ());
295
284
}
296
- client ().admin ().indices ().refresh (new RefreshRequest (indexName )).get ();
297
- assertThat (numHits (indexName ), equalTo (ids .size () + numHits ));
285
+ assertThat (numHits (indexName ), equalTo (numHits + ids .size ()));
298
286
}
299
287
300
288
private int numHits (String indexName ) throws Exception {
0 commit comments