use of org.opensearch.client.opensearch.indices.GetMappingResponse in project opensearch-java by opensearch-project.
the class VariantsTest method testNestedTaggedUnionWithDefaultTag.
@Test
public void testNestedTaggedUnionWithDefaultTag() {
// Object fields don't really exist in ES and are based on a naming convention where field names
// are dot-separated paths. The hierarchy is rebuilt from these names and ES doesn't send back
// "type": "object" for object properties.
//
// Mappings are therefore a hierarchy of internally-tagged unions based on the "type" property
// with a default "object" tag value if the "type" property is missing.
String json = "{\n" + " \"testindex\" : {\n" + " \"mappings\" : {\n" + " \"properties\" : {\n" + " \"id\" : {\n" + " \"type\" : \"text\",\n" + " \"fields\" : {\n" + " \"keyword\" : {\n" + " \"type\" : \"keyword\",\n" + " \"ignore_above\" : 256\n" + " }\n" + " }\n" + " },\n" + " \"name\" : {\n" + " \"properties\" : {\n" + " \"first\" : {\n" + " \"type\" : \"text\",\n" + " \"fields\" : {\n" + " \"keyword\" : {\n" + " \"type\" : \"keyword\",\n" + " \"ignore_above\" : 256\n" + " }\n" + " }\n" + " },\n" + " \"last\" : {\n" + " \"type\" : \"text\",\n" + " \"fields\" : {\n" + " \"keyword\" : {\n" + " \"type\" : \"keyword\",\n" + " \"ignore_above\" : 256\n" + " }\n" + " }\n" + " }\n" + " }\n" + " }\n" + " }\n" + " }\n" + " }\n" + "}";
GetMappingResponse response = fromJson(json, GetMappingResponse.class);
TypeMapping mappings = response.get("testindex").mappings();
assertTrue(mappings.properties().get("name").isObject());
assertEquals(256, mappings.properties().get("name").object().properties().get("first").text().fields().get("keyword").keyword().ignoreAbove().longValue());
assertTrue(mappings.properties().get("id").isText());
assertEquals(256, mappings.properties().get("id").text().fields().get("keyword").keyword().ignoreAbove().longValue());
}
use of org.opensearch.client.opensearch.indices.GetMappingResponse in project opensearch-java by opensearch-project.
the class RequestTest method testDataIngestion.
@Test
public void testDataIngestion() throws Exception {
String index = "ingest-test";
// Create an index
CreateIndexResponse createIndexResponse = highLevelClient().indices().create(b -> b.index(index));
assertEquals(index, createIndexResponse.index());
// Check that it actually exists. Example of a boolean response
BooleanResponse existsResponse = highLevelClient().indices().exists(b -> b.index(index));
assertTrue(existsResponse.value());
// Ingest some data
AppData appData = new AppData();
appData.setIntValue(1337);
appData.setMsg("foo");
String docId = highLevelClient().index(b -> b.index(index).id(// test with url-unsafe string
"my/Id").document(appData).refresh(// Make it visible for search
Refresh.True)).id();
assertEquals("my/Id", docId);
// Check auto-created mapping
GetMappingResponse mapping = highLevelClient().indices().getMapping(b -> b.index(index));
assertEquals(Property.Kind.Long, mapping.get("ingest-test").mappings().properties().get("intValue")._kind());
// Query by id
AppData esData = highLevelClient().get(b -> b.index(index).id(docId), AppData.class).source();
assertEquals(1337, esData.getIntValue());
assertEquals("foo", esData.getMsg());
// Query by id a non-existing document
final GetResponse<AppData> notExists = highLevelClient().get(b -> b.index(index).id("some-random-id"), AppData.class);
assertFalse(notExists.found());
assertNull(notExists.source());
// Search
SearchResponse<AppData> search = highLevelClient().search(b -> b.index(index), AppData.class);
long hits = search.hits().total().value();
assertEquals(1, hits);
esData = search.hits().hits().get(0).source();
assertEquals(1337, esData.getIntValue());
assertEquals("foo", esData.getMsg());
RequestItem item = RequestItem.of(_1 -> _1.header(_2 -> _2.index("test")).body(_2 -> _2.size(4)));
// MSearch: 1st search on an existing index, 2nd one on a non-existing index
final MsearchResponse<AppData> msearch = highLevelClient().msearch(_0 -> _0.searches(_1 -> _1.header(_3 -> _3.index(index)).body(_3 -> _3.query(_4 -> _4.matchAll(_5 -> _5)))).searches(_1 -> _1.header(_3 -> _3.index("non-existing")).body(_3 -> _3.query(_4 -> _4.matchAll(_5 -> _5)))), AppData.class);
assertEquals(2, msearch.responses().size());
assertTrue(msearch.responses().get(0).isResult());
assertEquals(1, msearch.responses().get(0).result().hits().hits().size());
assertTrue(msearch.responses().get(1).isFailure());
assertEquals(404, msearch.responses().get(1).failure().status());
}
use of org.opensearch.client.opensearch.indices.GetMappingResponse in project opensearch-java by opensearch-project.
the class RequestTest method testGetMapping.
@Test
public void testGetMapping() throws Exception {
// See also VariantsTest.testNestedTaggedUnionWithDefaultTag()
String index = "testindex";
Map<String, Property> fields = Collections.singletonMap("keyword", Property.of(p -> p.keyword(k -> k.ignoreAbove(256))));
Property text = Property.of(p -> p.text(t -> t.fields(fields)));
highLevelClient().indices().create(c -> c.index(index).mappings(m -> m.properties("id", text).properties("name", p -> p.object(o -> o.properties("first", text).properties("last", text)))));
GetMappingResponse mr = highLevelClient().indices().getMapping(mrb -> mrb.index(index));
assertNotNull(mr.result().get(index));
assertNotNull(mr.result().get(index).mappings().properties().get("name").object());
}
Aggregations