public void uploadMapping()

in source/src/main/java/com/amazonaws/comprehend/esproxy/lambda/utils/kibana/KibanaUploader.java [63:87]


    public void uploadMapping(@NonNull Map<String, ComprehendConfiguration> configMap, @NonNull LambdaLogger logger) {
        logger.log("Upload Mappings for Comprehend fields");

        try {
            JSONObject mappingJson = getResourceFileJson(MAPPING_KEY_NAME);
            Set<String> indexNameSet = new HashSet<>();

            for (ComprehendConfiguration configuration : configMap.values()) {
                String indexName = configuration.getIndexName();
                String fieldName = configuration.getFieldName();

                // If the index is new, add a new mapping. Otherwise update the existing mapping
                if (!indexNameSet.contains(indexName) && isIndexNotFound(indexName)) {
                    esClient.performRequest(HttpPut.METHOD_NAME, String.format("/%s", indexName),
                            mappingJson.get(String.format("new-%s", MAPPING_KEY_NAME)).toString().replaceAll(FIELD_NAME_KEY, fieldName));
                    indexNameSet.add(indexName);
                } else {
                    esClient.performRequest(HttpPut.METHOD_NAME, String.format("/%s/_mapping/_doc", indexName),
                            mappingJson.get(MAPPING_KEY_NAME).toString().replaceAll(FIELD_NAME_KEY, fieldName));
                }
            }
        } catch (IOException e) {
            logger.log("Upload Mappings failed with IOException" + e);
        }
    }