Search in sources :

Example 1 with GetFieldMappingsResponse

use of org.opensearch.client.indices.GetFieldMappingsResponse in project OpenSearch by opensearch-project.

the class IndicesClientIT method testGetFieldMapping.

public void testGetFieldMapping() throws IOException {
    String indexName = "test";
    createIndex(indexName, Settings.EMPTY);
    PutMappingRequest putMappingRequest = new PutMappingRequest(indexName);
    XContentBuilder mappingBuilder = JsonXContent.contentBuilder();
    mappingBuilder.startObject().startObject("properties").startObject("field");
    mappingBuilder.field("type", "text");
    mappingBuilder.endObject().endObject().endObject();
    putMappingRequest.source(mappingBuilder);
    AcknowledgedResponse putMappingResponse = execute(putMappingRequest, highLevelClient().indices()::putMapping, highLevelClient().indices()::putMappingAsync);
    assertTrue(putMappingResponse.isAcknowledged());
    GetFieldMappingsRequest getFieldMappingsRequest = new GetFieldMappingsRequest().indices(indexName).fields("field");
    GetFieldMappingsResponse getFieldMappingsResponse = execute(getFieldMappingsRequest, highLevelClient().indices()::getFieldMapping, highLevelClient().indices()::getFieldMappingAsync);
    final Map<String, GetFieldMappingsResponse.FieldMappingMetadata> fieldMappingMap = getFieldMappingsResponse.mappings().get(indexName);
    final GetFieldMappingsResponse.FieldMappingMetadata metadata = new GetFieldMappingsResponse.FieldMappingMetadata("field", new BytesArray("{\"field\":{\"type\":\"text\"}}"));
    assertThat(fieldMappingMap, equalTo(Collections.singletonMap("field", metadata)));
}
Also used : BytesArray(org.opensearch.common.bytes.BytesArray) PutMappingRequest(org.opensearch.client.indices.PutMappingRequest) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) GetFieldMappingsRequest(org.opensearch.client.indices.GetFieldMappingsRequest) Matchers.containsString(org.hamcrest.Matchers.containsString) GetFieldMappingsResponse(org.opensearch.client.indices.GetFieldMappingsResponse) XContentBuilder(org.opensearch.common.xcontent.XContentBuilder)

Example 2 with GetFieldMappingsResponse

use of org.opensearch.client.indices.GetFieldMappingsResponse in project OpenSearch by opensearch-project.

the class IndicesClientDocumentationIT method testGetFieldMapping.

@SuppressWarnings("unused")
public void testGetFieldMapping() throws IOException, InterruptedException {
    RestHighLevelClient client = highLevelClient();
    {
        CreateIndexResponse createIndexResponse = client.indices().create(new CreateIndexRequest("twitter"), RequestOptions.DEFAULT);
        assertTrue(createIndexResponse.isAcknowledged());
        PutMappingRequest request = new PutMappingRequest("twitter");
        request.source("{\n" + "  \"properties\": {\n" + "    \"message\": {\n" + "      \"type\": \"text\"\n" + "    },\n" + "    \"timestamp\": {\n" + "      \"type\": \"date\"\n" + "    }\n" + "  }\n" + // <1>
        "}", XContentType.JSON);
        AcknowledgedResponse putMappingResponse = client.indices().putMapping(request, RequestOptions.DEFAULT);
        assertTrue(putMappingResponse.isAcknowledged());
    }
    // tag::get-field-mappings-request
    // <1>
    GetFieldMappingsRequest request = new GetFieldMappingsRequest();
    // <2>
    request.indices("twitter");
    // <3>
    request.fields("message", "timestamp");
    // end::get-field-mappings-request
    // tag::get-field-mappings-request-indicesOptions
    // <1>
    request.indicesOptions(IndicesOptions.lenientExpandOpen());
    // end::get-field-mappings-request-indicesOptions
    // tag::get-field-mappings-request-local
    // <1>
    request.local(true);
    // end::get-field-mappings-request-local
    {
        // tag::get-field-mappings-execute
        GetFieldMappingsResponse response = client.indices().getFieldMapping(request, RequestOptions.DEFAULT);
        // end::get-field-mappings-execute
        // tag::get-field-mappings-response
        final Map<String, Map<String, GetFieldMappingsResponse.FieldMappingMetadata>> mappings = // <1>
        response.mappings();
        final Map<String, GetFieldMappingsResponse.FieldMappingMetadata> fieldMappings = // <2>
        mappings.get("twitter");
        final GetFieldMappingsResponse.FieldMappingMetadata metadata = // <3>
        fieldMappings.get("message");
        // <4>
        final String fullName = metadata.fullName();
        // <5>
        final Map<String, Object> source = metadata.sourceAsMap();
    // end::get-field-mappings-response
    }
    {
        // tag::get-field-mappings-execute-listener
        ActionListener<GetFieldMappingsResponse> listener = new ActionListener<GetFieldMappingsResponse>() {

            @Override
            public void onResponse(GetFieldMappingsResponse putMappingResponse) {
            // <1>
            }

            @Override
            public void onFailure(Exception e) {
            // <2>
            }
        };
        // end::get-field-mappings-execute-listener
        // Replace the empty listener by a blocking listener in test
        final CountDownLatch latch = new CountDownLatch(1);
        final ActionListener<GetFieldMappingsResponse> latchListener = new LatchedActionListener<>(listener, latch);
        listener = ActionListener.wrap(r -> {
            final Map<String, Map<String, GetFieldMappingsResponse.FieldMappingMetadata>> mappings = r.mappings();
            final Map<String, GetFieldMappingsResponse.FieldMappingMetadata> fieldMappings = mappings.get("twitter");
            final GetFieldMappingsResponse.FieldMappingMetadata metadata1 = fieldMappings.get("message");
            final String fullName = metadata1.fullName();
            final Map<String, Object> source = metadata1.sourceAsMap();
            latchListener.onResponse(r);
        }, e -> {
            latchListener.onFailure(e);
            fail("should not fail");
        });
        // tag::get-field-mappings-execute-async
        // <1>
        client.indices().getFieldMappingAsync(request, RequestOptions.DEFAULT, listener);
        // end::get-field-mappings-execute-async
        assertTrue(latch.await(30L, TimeUnit.SECONDS));
    }
}
Also used : PutMappingRequest(org.opensearch.client.indices.PutMappingRequest) AcknowledgedResponse(org.opensearch.action.support.master.AcknowledgedResponse) GetFieldMappingsRequest(org.opensearch.client.indices.GetFieldMappingsRequest) RestHighLevelClient(org.opensearch.client.RestHighLevelClient) GetFieldMappingsResponse(org.opensearch.client.indices.GetFieldMappingsResponse) CountDownLatch(java.util.concurrent.CountDownLatch) IOException(java.io.IOException) DefaultShardOperationFailedException(org.opensearch.action.support.DefaultShardOperationFailedException) OpenSearchException(org.opensearch.OpenSearchException) LatchedActionListener(org.opensearch.action.LatchedActionListener) ActionListener(org.opensearch.action.ActionListener) CreateIndexResponse(org.opensearch.client.indices.CreateIndexResponse) CreateIndexRequest(org.opensearch.client.indices.CreateIndexRequest) Map(java.util.Map) HashMap(java.util.HashMap)

Aggregations

AcknowledgedResponse (org.opensearch.action.support.master.AcknowledgedResponse)2 GetFieldMappingsRequest (org.opensearch.client.indices.GetFieldMappingsRequest)2 GetFieldMappingsResponse (org.opensearch.client.indices.GetFieldMappingsResponse)2 PutMappingRequest (org.opensearch.client.indices.PutMappingRequest)2 IOException (java.io.IOException)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 CountDownLatch (java.util.concurrent.CountDownLatch)1 Matchers.containsString (org.hamcrest.Matchers.containsString)1 OpenSearchException (org.opensearch.OpenSearchException)1 ActionListener (org.opensearch.action.ActionListener)1 LatchedActionListener (org.opensearch.action.LatchedActionListener)1 DefaultShardOperationFailedException (org.opensearch.action.support.DefaultShardOperationFailedException)1 RestHighLevelClient (org.opensearch.client.RestHighLevelClient)1 CreateIndexRequest (org.opensearch.client.indices.CreateIndexRequest)1 CreateIndexResponse (org.opensearch.client.indices.CreateIndexResponse)1 BytesArray (org.opensearch.common.bytes.BytesArray)1 XContentBuilder (org.opensearch.common.xcontent.XContentBuilder)1