public Request searchAsync(@NonNull Query query, @NonNull CompletionHandler completionHandler) {
        final Query queryCopy = new Query(query);
        return getClient().new AsyncTaskRequest(completionHandler) {
            @NonNull
            @Override
            protected JSONObject run() throws AlgoliaException {
                return searchSync(queryCopy);
            }
        }.start();
    }
public Request searchAsync(@NonNull Query query, @NonNull CompletionHandler completionHandler) {
        final Query queryCopy = new Query(query);
        return getClient().new AsyncTaskRequest(completionHandler) {
            @NonNull
            @Override
            protected JSONObject run() throws AlgoliaException {
                return searchSync(queryCopy);
            }
        }.start();
    }
public Request searchAsync ( @ NonNull Query query , @ NonNull CompletionHandler completionHandler ) { final Query queryCopy = new Query ( query ) ; return getClient ( ) . new AsyncTaskRequest ( completionHandler ) { @ NonNull @ Override protected JSONObject run ( ) throws AlgoliaException { return searchSync ( queryCopy ) ; } } . start ( ) ; }
Search inside this index (asynchronously).

@param query Search parameters. May be null to use an empty query.
@param completionHandler The listener that will be notified of the request's outcome.
@return A cancellable request.
Search inside this index ( asynchronously ) .