Class BulkRequest

All Implemented Interfaces:
org.apache.lucene.util.Accountable, CompositeIndicesRequest, WriteRequest<BulkRequest>, Writeable, org.elasticsearch.common.util.concurrent.RefCounted, TaskAwareRequest

public class BulkRequest
extends ActionRequest
implements CompositeIndicesRequest, WriteRequest<BulkRequest>, org.apache.lucene.util.Accountable
A bulk request holds an ordered IndexRequests, DeleteRequests and UpdateRequests and allows to executes it in a single batch. Note that we only support refresh on the bulk request not per item.
See Also:
Client.bulk(BulkRequest)
  • Field Details

    • timeout

      protected org.elasticsearch.common.unit.TimeValue timeout
  • Constructor Details

    • BulkRequest

      public BulkRequest()
    • BulkRequest

      public BulkRequest​(StreamInput in) throws java.io.IOException
      Throws:
      java.io.IOException
    • BulkRequest

      public BulkRequest​(@Nullable java.lang.String globalIndex)
    • BulkRequest

      @Deprecated public BulkRequest​(@Nullable java.lang.String globalIndex, @Nullable java.lang.String globalType)
      Deprecated.
      Types are in the process of being removed. Use BulkRequest(String) instead
  • Method Details

    • add

      public BulkRequest add​(DocWriteRequest<?>... requests)
      Adds a list of requests to be executed. Either index or delete requests.
    • add

      public BulkRequest add​(DocWriteRequest<?> request)
      Add a request to the current BulkRequest. Note for internal callers: This method does not respect all global parameters. Only the global index is applied to the request objects. Global parameters would be respected if the request was serialized for a REST call as it is in the high level rest client.
      Parameters:
      request - Request to add
      Returns:
      the current bulk request
    • add

      public BulkRequest add​(java.lang.Iterable<DocWriteRequest<?>> requests)
      Adds a list of requests to be executed. Either index or delete requests.
    • add

      public BulkRequest add​(IndexRequest request)
      Adds an IndexRequest to the list of actions to execute. Follows the same behavior of IndexRequest (for example, if no id is provided, one will be generated, or usage of the create flag).
    • add

      public BulkRequest add​(UpdateRequest request)
      Adds an UpdateRequest to the list of actions to execute.
    • add

      public BulkRequest add​(DeleteRequest request)
      Adds an DeleteRequest to the list of actions to execute.
    • requests

      public java.util.List<DocWriteRequest<?>> requests()
      The list of requests in this bulk request.
    • numberOfActions

      public int numberOfActions()
      The number of actions in the bulk request.
    • estimatedSizeInBytes

      public long estimatedSizeInBytes()
      The estimated size in bytes of the bulk request.
    • add

      public BulkRequest add​(byte[] data, int from, int length, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      @Deprecated public BulkRequest add​(byte[] data, int from, int length, @Nullable java.lang.String defaultIndex, @Nullable java.lang.String defaultType, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      public BulkRequest add​(byte[] data, int from, int length, @Nullable java.lang.String defaultIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      @Deprecated public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, @Nullable java.lang.String defaultType, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      @Deprecated public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, @Nullable java.lang.String defaultType, boolean allowExplicitIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, boolean allowExplicitIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Adds a framed data in binary format
      Throws:
      java.io.IOException
    • add

      public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, @Nullable java.lang.String defaultRouting, @Nullable FetchSourceContext defaultFetchSourceContext, @Nullable java.lang.String defaultPipeline, boolean allowExplicitIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Throws:
      java.io.IOException
    • add

      @Deprecated public BulkRequest add​(BytesReference data, @Nullable java.lang.String defaultIndex, @Nullable java.lang.String defaultType, @Nullable java.lang.String defaultRouting, @Nullable FetchSourceContext defaultFetchSourceContext, @Nullable java.lang.String defaultPipeline, @Nullable java.lang.Boolean defaultRequireAlias, boolean allowExplicitIndex, org.elasticsearch.common.xcontent.XContentType xContentType) throws java.io.IOException
      Throws:
      java.io.IOException
    • waitForActiveShards

      public BulkRequest waitForActiveShards​(ActiveShardCount waitForActiveShards)
      Sets the number of shard copies that must be active before proceeding with the write. See ReplicationRequest.waitForActiveShards(ActiveShardCount) for details.
    • waitForActiveShards

      public BulkRequest waitForActiveShards​(int waitForActiveShards)
      A shortcut for waitForActiveShards(ActiveShardCount) where the numerical shard count is passed in, instead of having to first call ActiveShardCount.from(int) to get the ActiveShardCount.
    • waitForActiveShards

      public ActiveShardCount waitForActiveShards()
    • setRefreshPolicy

      public BulkRequest setRefreshPolicy​(WriteRequest.RefreshPolicy refreshPolicy)
      Description copied from interface: WriteRequest
      Should this request trigger a refresh (WriteRequest.RefreshPolicy.IMMEDIATE), wait for a refresh ( WriteRequest.RefreshPolicy.WAIT_UNTIL), or proceed ignore refreshes entirely (WriteRequest.RefreshPolicy.NONE, the default).
      Specified by:
      setRefreshPolicy in interface WriteRequest<BulkRequest>
    • getRefreshPolicy

      public WriteRequest.RefreshPolicy getRefreshPolicy()
      Description copied from interface: WriteRequest
      Should this request trigger a refresh (WriteRequest.RefreshPolicy.IMMEDIATE), wait for a refresh ( WriteRequest.RefreshPolicy.WAIT_UNTIL), or proceed ignore refreshes entirely (WriteRequest.RefreshPolicy.NONE, the default).
      Specified by:
      getRefreshPolicy in interface WriteRequest<BulkRequest>
    • timeout

      public final BulkRequest timeout​(org.elasticsearch.common.unit.TimeValue timeout)
      A timeout to wait if the index operation can't be performed immediately. Defaults to 1m.
    • pipeline

      public final BulkRequest pipeline​(java.lang.String globalPipeline)
      Note for internal callers (NOT high level rest client), the global parameter setting is ignored when used with: - add(IndexRequest) - add(UpdateRequest) - add(DocWriteRequest) - add(DocWriteRequest[]) )} - add(Iterable)
      Parameters:
      globalPipeline - the global default setting
      Returns:
      Bulk request with global setting set
    • routing

      public final BulkRequest routing​(java.lang.String globalRouting)
      Note for internal callers (NOT high level rest client), the global parameter setting is ignored when used with: - add(IndexRequest) - add(UpdateRequest) - add(DocWriteRequest) - add(DocWriteRequest[]) )} - add(Iterable)
      Parameters:
      globalRouting - the global default setting
      Returns:
      Bulk request with global setting set
    • timeout

      public final BulkRequest timeout​(java.lang.String timeout)
      A timeout to wait if the index operation can't be performed immediately. Defaults to 1m.
    • timeout

      public org.elasticsearch.common.unit.TimeValue timeout()
    • pipeline

      public java.lang.String pipeline()
    • routing

      public java.lang.String routing()
    • requireAlias

      public java.lang.Boolean requireAlias()
    • requireAlias

      public BulkRequest requireAlias​(java.lang.Boolean globalRequireAlias)
      Note for internal callers (NOT high level rest client), the global parameter setting is ignored when used with: - add(IndexRequest) - add(UpdateRequest) - add(DocWriteRequest) - add(DocWriteRequest[]) )} - add(Iterable)
      Parameters:
      globalRequireAlias - the global default setting
      Returns:
      Bulk request with global setting set
    • validate

      Specified by:
      validate in interface WriteRequest<BulkRequest>
      Specified by:
      validate in class ActionRequest
    • writeTo

      public void writeTo​(StreamOutput out) throws java.io.IOException
      Description copied from interface: Writeable
      Write this into the StreamOutput.
      Specified by:
      writeTo in interface Writeable
      Overrides:
      writeTo in class ActionRequest
      Throws:
      java.io.IOException
    • getDescription

      public java.lang.String getDescription()
      Description copied from interface: TaskAwareRequest
      Returns optional description of the request to be displayed by the task manager
      Specified by:
      getDescription in interface TaskAwareRequest
    • ramBytesUsed

      public long ramBytesUsed()
      Specified by:
      ramBytesUsed in interface org.apache.lucene.util.Accountable
    • getIndices

      public java.util.Set<java.lang.String> getIndices()