99
1010import  com .carrotsearch .randomizedtesting .annotations .ParametersFactory ;
1111
12- import  org .elasticsearch .action .admin .indices .refresh .RefreshRequest ;
1312import  org .elasticsearch .action .bulk .BulkItemResponse ;
1413import  org .elasticsearch .action .bulk .BulkRequestBuilder ;
1514import  org .elasticsearch .action .bulk .BulkResponse ;
1615import  org .elasticsearch .action .delete .DeleteRequestBuilder ;
1716import  org .elasticsearch .action .index .IndexRequestBuilder ;
1817import  org .elasticsearch .action .search .SearchRequest ;
1918import  org .elasticsearch .action .search .SearchResponse ;
19+ import  org .elasticsearch .action .support .WriteRequest ;
2020import  org .elasticsearch .action .update .UpdateRequestBuilder ;
2121import  org .elasticsearch .cluster .metadata .IndexMetadata ;
2222import  org .elasticsearch .common .settings .Settings ;
@@ -243,12 +243,10 @@ public void testRestart() throws Exception {
243243
244244    private  void  assertRandomBulkOperations (String  indexName , Function <Boolean , Map <String , Object >> sourceSupplier ) throws  Exception  {
245245        int  numHits  = numHits (indexName );
246-         int  totalBulkReqs  = randomIntBetween (2 , 100 );
247-         long  totalDocs  = numHits ;
246+         int  totalBulkReqs  = randomIntBetween (2 , 10 );
248247        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 );
252250            int  totalBulkSize  = randomIntBetween (1 , 100 );
253251            for  (int  bulkSize  = 0 ; bulkSize  < totalBulkSize ; bulkSize ++) {
254252                if  (ids .size () > 0  && rarely (random ())) {
@@ -258,24 +256,15 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
258256                    bulkReqBuilder .add (request );
259257                    continue ;
260258                }
261-                 String  id  = Long .toString (totalDocs ++);
262-                 boolean  isIndexRequest  = randomBoolean ();
259+                 boolean  isIndexRequest  = ids .size () == 0  || randomBoolean ();
263260                Map <String , Object > source  = sourceSupplier .apply (isIndexRequest );
264261                if  (isIndexRequest ) {
262+                     String  id  = randomAlphaOfLength (20 );
265263                    bulkReqBuilder .add (new  IndexRequestBuilder (client ()).setIndex (indexName ).setId (id ).setSource (source ));
266264                    ids .add (id );
267265                } 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 ));
279268                }
280269            }
281270            BulkResponse  bulkResponse  = bulkReqBuilder .get ();
@@ -294,8 +283,7 @@ private void assertRandomBulkOperations(String indexName, Function<Boolean, Map<
294283            }
295284            assertFalse (bulkResponse .hasFailures ());
296285        }
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 ()));
299287    }
300288
301289    private  int  numHits (String  indexName ) throws  Exception  {
0 commit comments