@Test public void define_nested_field() { NewIndex index = new NewIndex("projectmeasures", defaultSettingsConfiguration); NewIndex.NewIndexType mapping = index.createType("projectmeasures"); mapping.nestedFieldBuilder("measures") .addKeywordField("key") .addDoubleField("value") .build(); Map<String, Object> result = (Map) mapping.getProperty("measures"); assertThat(result.get("type")).isEqualTo("nested"); Map<String, Map<String, Object>> subProperties = (Map) result.get("properties"); assertThat(subProperties.get("key").get("type")).isEqualTo("keyword"); assertThat(subProperties.get("value").get("type")).isEqualTo("double"); }
mapping.keywordFieldBuilder(FIELD_TAGS).build(); mapping.keywordFieldBuilder(FIELD_LANGUAGES).build(); mapping.nestedFieldBuilder(FIELD_MEASURES) .addKeywordField(FIELD_MEASURES_KEY) .addDoubleField(FIELD_MEASURES_VALUE) .build(); mapping.nestedFieldBuilder(FIELD_NCLOC_LANGUAGE_DISTRIBUTION) .addKeywordField(FIELD_DISTRIB_LANGUAGE) .addIntegerField(FIELD_DISTRIB_NCLOC)
mapping.keywordFieldBuilder(FIELD_TAGS).build(); mapping.keywordFieldBuilder(FIELD_LANGUAGES).build(); mapping.nestedFieldBuilder(FIELD_MEASURES) .addKeywordField(FIELD_MEASURES_KEY) .addDoubleField(FIELD_MEASURES_VALUE) .build(); mapping.nestedFieldBuilder(FIELD_NCLOC_LANGUAGE_DISTRIBUTION) .addKeywordField(FIELD_DISTRIB_LANGUAGE) .addIntegerField(FIELD_DISTRIB_NCLOC)
@Test public void fail_when_nested_with_no_field() { expectedException.expect(IllegalArgumentException.class); expectedException.expectMessage("At least one sub-field must be declared in nested property 'measures'"); NewIndex index = new NewIndex("projectmeasures", defaultSettingsConfiguration); NewIndex.NewIndexType mapping = index.createType("project_measures"); mapping.nestedFieldBuilder("measures").build(); }