Search in sources :

Example 1 with QueryExplanation

use of org.opensearch.action.admin.indices.validate.query.QueryExplanation in project OpenSearch by opensearch-project.

the class IndicesClientDocumentationIT method testValidateQuery.

@SuppressWarnings("unused")
public void testValidateQuery() throws IOException, InterruptedException {
    RestHighLevelClient client = highLevelClient();
    String index = "some_index";
    createIndex(index, Settings.EMPTY);
    // tag::indices-validate-query-request
    // <1>
    ValidateQueryRequest request = new ValidateQueryRequest(index);
    // end::indices-validate-query-request
    // tag::indices-validate-query-request-query
    QueryBuilder builder = QueryBuilders.boolQuery().must(QueryBuilders.queryStringQuery("*:*")).filter(QueryBuilders.termQuery("user", "foobar"));
    // <2>
    request.query(builder);
    // end::indices-validate-query-request-query
    // tag::indices-validate-query-request-explain
    // <1>
    request.explain(true);
    // end::indices-validate-query-request-explain
    // tag::indices-validate-query-request-allShards
    // <1>
    request.allShards(true);
    // end::indices-validate-query-request-allShards
    // tag::indices-validate-query-request-rewrite
    // <1>
    request.rewrite(true);
    // end::indices-validate-query-request-rewrite
    // tag::indices-validate-query-execute
    // <1>
    ValidateQueryResponse response = client.indices().validateQuery(request, RequestOptions.DEFAULT);
    // end::indices-validate-query-execute
    // tag::indices-validate-query-response
    // <1>
    boolean isValid = response.isValid();
    // <2>
    int totalShards = response.getTotalShards();
    // <3>
    int successfulShards = response.getSuccessfulShards();
    // <4>
    int failedShards = response.getFailedShards();
    if (failedShards > 0) {
        for (DefaultShardOperationFailedException failure : response.getShardFailures()) {
            // <5>
            // <6>
            String failedIndex = failure.index();
            // <7>
            int shardId = failure.shardId();
            // <8>
            String reason = failure.reason();
        }
    }
    for (QueryExplanation explanation : response.getQueryExplanation()) {
        // <9>
        // <10>
        String explanationIndex = explanation.getIndex();
        // <11>
        int shardId = explanation.getShard();
        // <12>
        String explanationString = explanation.getExplanation();
    }
    // end::indices-validate-query-response
    // tag::indices-validate-query-execute-listener
    ActionListener<ValidateQueryResponse> listener = new ActionListener<ValidateQueryResponse>() {

        @Override
        public void onResponse(ValidateQueryResponse validateQueryResponse) {
        // <1>
        }

        @Override
        public void onFailure(Exception e) {
        // <2>
        }
    };
    // end::indices-validate-query-execute-listener
    // Replace the empty listener by a blocking listener in test
    final CountDownLatch latch = new CountDownLatch(1);
    listener = new LatchedActionListener<>(listener, latch);
    // tag::indices-validate-query-execute-async
    // <1>
    client.indices().validateQueryAsync(request, RequestOptions.DEFAULT, listener);
    // end::indices-validate-query-execute-async
    assertTrue(latch.await(30L, TimeUnit.SECONDS));
}
Also used : ValidateQueryResponse(org.opensearch.action.admin.indices.validate.query.ValidateQueryResponse) ValidateQueryRequest(org.opensearch.action.admin.indices.validate.query.ValidateQueryRequest) RestHighLevelClient(org.opensearch.client.RestHighLevelClient) QueryBuilder(org.opensearch.index.query.QueryBuilder) CountDownLatch(java.util.concurrent.CountDownLatch) DefaultShardOperationFailedException(org.opensearch.action.support.DefaultShardOperationFailedException) IOException(java.io.IOException) DefaultShardOperationFailedException(org.opensearch.action.support.DefaultShardOperationFailedException) OpenSearchException(org.opensearch.OpenSearchException) QueryExplanation(org.opensearch.action.admin.indices.validate.query.QueryExplanation) LatchedActionListener(org.opensearch.action.LatchedActionListener) ActionListener(org.opensearch.action.ActionListener)

Aggregations

IOException (java.io.IOException)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 OpenSearchException (org.opensearch.OpenSearchException)1 ActionListener (org.opensearch.action.ActionListener)1 LatchedActionListener (org.opensearch.action.LatchedActionListener)1 QueryExplanation (org.opensearch.action.admin.indices.validate.query.QueryExplanation)1 ValidateQueryRequest (org.opensearch.action.admin.indices.validate.query.ValidateQueryRequest)1 ValidateQueryResponse (org.opensearch.action.admin.indices.validate.query.ValidateQueryResponse)1 DefaultShardOperationFailedException (org.opensearch.action.support.DefaultShardOperationFailedException)1 RestHighLevelClient (org.opensearch.client.RestHighLevelClient)1 QueryBuilder (org.opensearch.index.query.QueryBuilder)1