Class AbstractAsyncBulkByScrollAction<Request extends org.elasticsearch.index.reindex.AbstractBulkByScrollRequest<Request>>

  • Direct Known Subclasses:
    AsyncDeleteByQueryAction

    public abstract class AbstractAsyncBulkByScrollAction<Request extends org.elasticsearch.index.reindex.AbstractBulkByScrollRequest<Request>>
    extends java.lang.Object
    Abstract base for scrolling across a search and executing bulk actions on all results. All package private methods are package private so their tests can use them. Most methods run in the listener thread pool because the are meant to be fast and don't expect to block.
    • Field Detail

      • logger

        protected final org.apache.logging.log4j.Logger logger
      • task

        protected final org.elasticsearch.index.reindex.BulkByScrollTask task
      • worker

        protected final org.elasticsearch.index.reindex.WorkerBulkByScrollTaskState worker
      • threadPool

        protected final org.elasticsearch.threadpool.ThreadPool threadPool
      • scriptService

        protected final org.elasticsearch.script.ScriptService scriptService
      • clusterState

        protected final org.elasticsearch.cluster.ClusterState clusterState
      • mainRequest

        protected final Request extends org.elasticsearch.index.reindex.AbstractBulkByScrollRequest<Request> mainRequest
        The request for this action. Named mainRequest because we create lots of request variables all representing child requests of this mainRequest.
    • Constructor Detail

      • AbstractAsyncBulkByScrollAction

        public AbstractAsyncBulkByScrollAction​(org.elasticsearch.index.reindex.BulkByScrollTask task,
                                               org.apache.logging.log4j.Logger logger,
                                               org.elasticsearch.client.ParentTaskAssigningClient client,
                                               org.elasticsearch.threadpool.ThreadPool threadPool,
                                               Request mainRequest,
                                               org.elasticsearch.script.ScriptService scriptService,
                                               org.elasticsearch.cluster.ClusterState clusterState,
                                               org.elasticsearch.action.ActionListener<org.elasticsearch.index.reindex.BulkByScrollResponse> listener)
      • AbstractAsyncBulkByScrollAction

        public AbstractAsyncBulkByScrollAction​(org.elasticsearch.index.reindex.BulkByScrollTask task,
                                               org.apache.logging.log4j.Logger logger,
                                               org.elasticsearch.client.ParentTaskAssigningClient client,
                                               org.elasticsearch.threadpool.ThreadPool threadPool,
                                               Request mainRequest,
                                               org.elasticsearch.script.ScriptService scriptService,
                                               org.elasticsearch.cluster.ClusterState clusterState,
                                               org.elasticsearch.action.ActionListener<org.elasticsearch.index.reindex.BulkByScrollResponse> listener,
                                               org.elasticsearch.common.settings.Settings settings)
    • Method Detail

      • needsSourceDocumentVersions

        protected abstract boolean needsSourceDocumentVersions()
        Does this operation need the versions of the source documents?
      • accept

        protected boolean accept​(org.elasticsearch.index.reindex.ScrollableHitSource.Hit doc)
        Used to accept or ignore a search hit. Ignored search hits will be excluded from the bulk request. It is also where we fail on invalid search hits, like when the document has no source but it's required.
      • buildScrollableResultSource

        protected org.elasticsearch.index.reindex.ScrollableHitSource buildScrollableResultSource​(org.elasticsearch.action.bulk.BackoffPolicy backoffPolicy)
      • buildResponse

        protected org.elasticsearch.index.reindex.BulkByScrollResponse buildResponse​(org.elasticsearch.common.unit.TimeValue took,
                                                                                     java.util.List<org.elasticsearch.action.bulk.BulkItemResponse.Failure> indexingFailures,
                                                                                     java.util.List<org.elasticsearch.index.reindex.ScrollableHitSource.SearchFailure> searchFailures,
                                                                                     boolean timedOut)
        Build the response for reindex actions.
      • start

        public void start()
        Start the action by firing the initial search request.
      • finishHim

        protected void finishHim​(java.lang.Exception failure)
        Finish the request.
        Parameters:
        failure - if non null then the request failed catastrophically with this exception
      • finishHim

        protected void finishHim​(java.lang.Exception failure,
                                 java.util.List<org.elasticsearch.action.bulk.BulkItemResponse.Failure> indexingFailures,
                                 java.util.List<org.elasticsearch.index.reindex.ScrollableHitSource.SearchFailure> searchFailures,
                                 boolean timedOut)
        Finish the request.
        Parameters:
        failure - if non null then the request failed catastrophically with this exception
        indexingFailures - any indexing failures accumulated during the request
        searchFailures - any search failures accumulated during the request
        timedOut - have any of the sub-requests timed out?