private void createIndexIfNotCreated()

in fts/src/main/java/com/epam/eco/schemacatalog/fts/repo/SchemaDocumentRepositoryImpl.java [79:103]


    private void createIndexIfNotCreated() {
        IndexOperations indexOperations = elasticsearchOperations.indexOps(SchemaDocument.class);
        if (indexOperations.exists()) {
            return;
        }

        IndexCoordinates coordinates = indexOperations.getIndexCoordinates();

        Document mapping = indexOperations.createMapping(SchemaDocument.class);
        Document settings = indexOperations.createSettings(SchemaDocument.class);

        //todo replace with create(settings, mapping) when spring-data elastic ups to 4.2+
        //indexOperations.create(mapping);

        CreateIndexRequest request = new CreateIndexRequest(coordinates.getIndexName());

        if (settings != null && !settings.isEmpty()) {
            request.settings(settings);
        }
        if (mapping != null && !mapping.isEmpty()) {
            request.mapping(mapping);
        }

        restTemplate.execute(client -> client.indices().create(request, RequestOptions.DEFAULT).isAcknowledged());
    }