Clear Scroll API

edit

The search contexts used by the Search Scroll API are automatically deleted when the scroll times out. But it is advised to release search contexts as soon as they are not necessary anymore using the Clear Scroll API.

Clear Scroll Request

edit

A ClearScrollRequest can be created as follows:

ClearScrollRequest request = new ClearScrollRequest(); 
request.addScrollId(scrollId); 

Create a new ClearScrollRequest

Adds a scroll id to the list of scroll identifiers to clear

Providing the scroll identifiers

edit

The ClearScrollRequest allows to clear one or more scroll identifiers in a single request.

The scroll identifiers can be added to the request one by one:

request.addScrollId(scrollId);

Or all together using:

request.setScrollIds(scrollIds);

Synchronous Execution

edit
ClearScrollResponse response = client.clearScroll(request, RequestOptions.DEFAULT);

Asynchronous Execution

edit

The asynchronous execution of a clear scroll request requires both the ClearScrollRequest instance and an ActionListener instance to be passed to the asynchronous method:

client.clearScrollAsync(request, RequestOptions.DEFAULT, listener); 

The ClearScrollRequest to execute and the ActionListener to use when the execution completes

The asynchronous method does not block and returns immediately. Once it is completed the ActionListener is called back using the onResponse method if the execution successfully completed or using the onFailure method if it failed.

A typical listener for ClearScrollResponse looks like:

ActionListener<ClearScrollResponse> listener =
        new ActionListener<ClearScrollResponse>() {
    @Override
    public void onResponse(ClearScrollResponse clearScrollResponse) {
        
    }

    @Override
    public void onFailure(Exception e) {
        
    }
};

Called when the execution is successfully completed. The response is provided as an argument

Called in case of failure. The raised exception is provided as an argument

Clear Scroll Response

edit

The returned ClearScrollResponse allows to retrieve information about the released search contexts:

boolean success = response.isSucceeded(); 
int released = response.getNumFreed(); 

Return true if the request succeeded

Return the number of released search contexts