algoliasearch/src/main/java/com/algolia/search/saas/helpers/DisjunctiveFaceting.java
public <T extends Collection<String>> Request searchDisjunctiveFacetingAsync(@NonNull Query query, @NonNull final Collection<String> disjunctiveFacets, @NonNull final Map<String, T> refinements, @NonNull final CompletionHandler completionHandler) {
        final List<Query> queries = computeDisjunctiveFacetingQueries(query, disjunctiveFacets, refinements);
        return multipleQueriesAsync(queries, new CompletionHandler() {
            @Override
            public void requestCompleted(JSONObject content, AlgoliaException error) {
                JSONObject aggregatedResults = null;
                try {
                    if (content != null) {
                        aggregatedResults = aggregateDisjunctiveFacetingResults(content, disjunctiveFacets, refinements);
                    }
                } catch (AlgoliaException e) {
                    error = e;
                }
                completionHandler.requestCompleted(aggregatedResults, error);
            }
        });
    }
public <T extends Collection<String>> Request searchDisjunctiveFacetingAsync(@NonNull Query query, @NonNull final Collection<String> disjunctiveFacets, @NonNull final Map<String, T> refinements, @NonNull final CompletionHandler completionHandler) {
        final List<Query> queries = computeDisjunctiveFacetingQueries(query, disjunctiveFacets, refinements);
        return multipleQueriesAsync(queries, new CompletionHandler() {
            @Override
            public void requestCompleted(JSONObject content, AlgoliaException error) {
                JSONObject aggregatedResults = null;
                try {
                    if (content != null) {
                        aggregatedResults = aggregateDisjunctiveFacetingResults(content, disjunctiveFacets, refinements);
                    }
                } catch (AlgoliaException e) {
                    error = e;
                }
                completionHandler.requestCompleted(aggregatedResults, error);
            }
        });
    }
Perform a search with disjunctive facets, generating as many queries as number of disjunctive facets.

@param query             The query.
@param disjunctiveFacets List of disjunctive facets.
@param refinements       The current refinements, mapping facet names to a list of values.
@param completionHandler The listener that will be notified of the request's outcome.
@return A cancellable request.