@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_TEST.getIndex(), newBuilder(config) .setRefreshInterval(MANUAL_REFRESH_INTERVAL) .setDefaultNbOfShards(5) .build()); NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_TEST.getType()); mapping.setAttribute("_routing", ImmutableMap.of("required", true)); mapping.keywordFieldBuilder(FIELD_PROJECT_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_FILE_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_TEST_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_NAME).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.keywordFieldBuilder(FIELD_STATUS).disableNorms().disableSearch().build(); mapping.createLongField(FIELD_DURATION_IN_MS); mapping.keywordFieldBuilder(FIELD_MESSAGE).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.keywordFieldBuilder(FIELD_STACKTRACE).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.setProperty(FIELD_COVERED_FILES, ImmutableMap.of("type", "nested", "properties", ImmutableMap.of( FIELD_COVERED_FILE_UUID, ImmutableMap.of("type", FIELD_TYPE_KEYWORD, "index", INDEX_SEARCHABLE), FIELD_COVERED_FILE_LINES, ImmutableMap.of("type", "integer")))); mapping.createDateTimeField(FIELD_UPDATED_AT); } }
private static List<IndexDefinition.Index> createIndices(IndexDefinition... definitions) { IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); Stream.of(definitions).forEach(d -> d.define(context)); for (NewIndex newIndex : context.getIndices().values()) { IndexDefinition.Index index = new IndexDefinition.Index(newIndex);
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_RULE.getIndex(), newBuilder(config)
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_ISSUE.getIndex(), newBuilder(config)
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_PROJECT_MEASURES.getIndex(), newBuilder(config)
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_TEST.getIndex(), newBuilder(config) .setRefreshInterval(MANUAL_REFRESH_INTERVAL) .setDefaultNbOfShards(5) .build()); NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_TEST.getType()); mapping.setAttribute("_routing", ImmutableMap.of("required", true)); mapping.keywordFieldBuilder(FIELD_PROJECT_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_FILE_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_TEST_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_NAME).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.keywordFieldBuilder(FIELD_STATUS).disableNorms().disableSearch().build(); mapping.createLongField(FIELD_DURATION_IN_MS); mapping.keywordFieldBuilder(FIELD_MESSAGE).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.keywordFieldBuilder(FIELD_STACKTRACE).disableNorms().disableSearch().disableSortingAndAggregating().build(); mapping.setProperty(FIELD_COVERED_FILES, ImmutableMap.of("type", "nested", "properties", ImmutableMap.of( FIELD_COVERED_FILE_UUID, ImmutableMap.of("type", FIELD_TYPE_KEYWORD, "index", INDEX_SEARCHABLE), FIELD_COVERED_FILE_LINES, ImmutableMap.of("type", "integer")))); mapping.createDateTimeField(FIELD_UPDATED_AT); } }
@Override public void start() { // create the "metadata" index first if (!client.prepareIndicesExist(MetadataIndexDefinition.INDEX_TYPE_METADATA.getIndex()).get().isExists()) { IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); metadataIndexDefinition.define(context); NewIndex index = context.getIndices().values().iterator().next(); createIndex(new Index(index), false); } checkDbCompatibility(definitions.getIndices().values()); // create indices that do not exist or that have a new definition (different mapping, cluster enabled, ...) for (Index index : definitions.getIndices().values()) { boolean exists = client.prepareIndicesExist(index.getName()).get().isExists(); if (exists && !index.getName().equals(MetadataIndexDefinition.INDEX_TYPE_METADATA.getIndex()) && hasDefinitionChange(index)) { verifyNotBlueGreenDeployment(index.getName()); LOGGER.info("Delete Elasticsearch index {} (structure changed)", index.getName()); deleteIndex(index.getName()); exists = false; } if (!exists) { createIndex(index, true); } } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_COMPONENT.getIndex(), newBuilder(config) .setRefreshInterval(MANUAL_REFRESH_INTERVAL) .setDefaultNbOfShards(DEFAULT_NUMBER_OF_SHARDS) .build()); NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_COMPONENT.getType()) .requireProjectAuthorization(); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_PROJECT_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_KEY).addSubFields(SORTABLE_ANALYZER).build(); mapping.textFieldBuilder(FIELD_NAME) .withFieldData() .termVectorWithPositionOffsets() .addSubFields(NAME_ANALYZERS) .build(); mapping.keywordFieldBuilder(FIELD_QUALIFIER).build(); mapping.keywordFieldBuilder(FIELD_LANGUAGE).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ORGANIZATION_UUID).disableNorms().build(); } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create(INDEX_TYPE_USER.getIndex(), newBuilder(config) .setDefaultNbOfShards(1) .build()); // type "user" NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_USER.getType()); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_LOGIN).addSubFields(USER_SEARCH_GRAMS_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_NAME).addSubFields(USER_SEARCH_GRAMS_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_EMAIL).addSubFields(USER_SEARCH_GRAMS_ANALYZER, SORTABLE_ANALYZER).build(); mapping.createBooleanField(FIELD_ACTIVE); mapping.keywordFieldBuilder(FIELD_SCM_ACCOUNTS).disableNorms().addSubFields(SORTABLE_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_ORGANIZATION_UUIDS).disableNorms().build(); } }
@Override public void start() { // collect definitions IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); if (!config.getBoolean("sonar.internal.es.disableIndexes").orElse(false)) { for (IndexDefinition definition : defs) { definition.define(context); } for (Map.Entry<String, NewIndex> entry : context.getIndices().entrySet()) { byKey.put(entry.getKey(), new Index(entry.getValue())); } } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_VIEW.getIndex(), newBuilder(config) .setDefaultNbOfShards(5) .build()); // type "view" NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_VIEW.getType()); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_PROJECTS).disableNorms().build(); } }
public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_METADATA.getIndex(), newBuilder(configuration) .setRefreshInterval(MANUAL_REFRESH_INTERVAL) .setDefaultNbOfShards(DEFAULT_NUMBER_OF_SHARDS) .build()); NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_METADATA.getType()); mapping.keywordFieldBuilder(FIELD_VALUE).disableSearch().store().build(); } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_RULE.getIndex(), newBuilder(config)
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_ISSUE.getIndex(), newBuilder(config)
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_PROJECT_MEASURES.getIndex(), newBuilder(config)
@Override public void start() { // create the "metadata" index first if (!client.prepareIndicesExist(MetadataIndexDefinition.INDEX_TYPE_METADATA.getIndex()).get().isExists()) { IndexDefinition.IndexDefinitionContext context = new IndexDefinition.IndexDefinitionContext(); metadataIndexDefinition.define(context); NewIndex index = context.getIndices().values().iterator().next(); createIndex(new Index(index), false); } checkDbCompatibility(definitions.getIndices().values()); // create indices that do not exist or that have a new definition (different mapping, cluster enabled, ...) for (Index index : definitions.getIndices().values()) { boolean exists = client.prepareIndicesExist(index.getName()).get().isExists(); if (exists && !index.getName().equals(MetadataIndexDefinition.INDEX_TYPE_METADATA.getIndex()) && hasDefinitionChange(index)) { verifyNotBlueGreenDeployment(index.getName()); LOGGER.info("Delete Elasticsearch index {} (structure changed)", index.getName()); deleteIndex(index.getName()); exists = false; } if (!exists) { createIndex(index, true); } } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_COMPONENT.getIndex(), newBuilder(config) .setRefreshInterval(MANUAL_REFRESH_INTERVAL) .setDefaultNbOfShards(DEFAULT_NUMBER_OF_SHARDS) .build()); NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_COMPONENT.getType()) .requireProjectAuthorization(); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_PROJECT_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_KEY).addSubFields(SORTABLE_ANALYZER).build(); mapping.textFieldBuilder(FIELD_NAME) .withFieldData() .termVectorWithPositionOffsets() .addSubFields(NAME_ANALYZERS) .build(); mapping.keywordFieldBuilder(FIELD_QUALIFIER).build(); mapping.keywordFieldBuilder(FIELD_LANGUAGE).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_ORGANIZATION_UUID).disableNorms().build(); } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create(INDEX_TYPE_USER.getIndex(), newBuilder(config) .setDefaultNbOfShards(1) .build()); // type "user" NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_USER.getType()); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_LOGIN).addSubFields(USER_SEARCH_GRAMS_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_NAME).addSubFields(USER_SEARCH_GRAMS_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_EMAIL).addSubFields(USER_SEARCH_GRAMS_ANALYZER, SORTABLE_ANALYZER).build(); mapping.createBooleanField(FIELD_ACTIVE); mapping.keywordFieldBuilder(FIELD_SCM_ACCOUNTS).disableNorms().addSubFields(SORTABLE_ANALYZER).build(); mapping.keywordFieldBuilder(FIELD_ORGANIZATION_UUIDS).disableNorms().build(); } }
@Test public void define() { IssueIndexDefinition def = new IssueIndexDefinition(new MapSettings().asConfig()); def.define(underTest); assertThat(underTest.getIndices()).hasSize(1); NewIndex issuesIndex = underTest.getIndices().get("issues"); assertThat(issuesIndex).isNotNull(); assertThat(issuesIndex.getTypes().keySet()).containsOnly("issue", "authorization"); // no cluster by default assertThat(issuesIndex.getSettings().get("index.number_of_shards")).isEqualTo("5"); assertThat(issuesIndex.getSettings().get("index.number_of_replicas")).isEqualTo("0"); } }
@Override public void define(IndexDefinitionContext context) { NewIndex index = context.create( INDEX_TYPE_VIEW.getIndex(), newBuilder(config) .setDefaultNbOfShards(5) .build()); // type "view" NewIndex.NewIndexType mapping = index.createType(INDEX_TYPE_VIEW.getType()); mapping.keywordFieldBuilder(FIELD_UUID).disableNorms().build(); mapping.keywordFieldBuilder(FIELD_PROJECTS).disableNorms().build(); } }