/** * Parses the ElasticSearch meta data info into an ElasticSearchMetaData * object. This method makes much easier to create the ElasticSearch schema. * * @param metaDataInfo * ElasticSearch mapping metadata in Map format * @return An ElasticSearchMetaData object */ public static ElasticSearchMetaData parse(Map<String, ?> metaDataInfo) { final String[] fieldNames = new String[metaDataInfo.size() + 1]; final ColumnType[] columnTypes = new ColumnType[metaDataInfo.size() + 1]; // add the document ID field (fixed) fieldNames[0] = ElasticSearchUtils.FIELD_ID; columnTypes[0] = ColumnType.STRING; int i = 1; for (Entry<String, ?> metaDataField : metaDataInfo.entrySet()) { @SuppressWarnings("unchecked") final Map<String, ?> fieldMetadata = (Map<String, ?>) metaDataField.getValue(); fieldNames[i] = metaDataField.getKey(); columnTypes[i] = getColumnTypeFromMetadataField(fieldMetadata); i++; } return new ElasticSearchMetaData(fieldNames, columnTypes); }
/** * Parses the ElasticSearch meta data info into an ElasticSearchMetaData * object. This method makes much easier to create the ElasticSearch schema. * * @param metaDataInfo * ElasticSearch mapping metadata in Map format * @return An ElasticSearchMetaData object */ public static ElasticSearchMetaData parse(Map<String, ?> metaDataInfo) { final String[] fieldNames = new String[metaDataInfo.size() + 1]; final ColumnType[] columnTypes = new ColumnType[metaDataInfo.size() + 1]; // add the document ID field (fixed) fieldNames[0] = ElasticSearchUtils.FIELD_ID; columnTypes[0] = ColumnType.STRING; int i = 1; for (Entry<String, ?> metaDataField : metaDataInfo.entrySet()) { @SuppressWarnings("unchecked") final Map<String, ?> fieldMetadata = (Map<String, ?>) metaDataField.getValue(); fieldNames[i] = metaDataField.getKey(); columnTypes[i] = getColumnTypeFromMetadataField(fieldMetadata); i++; } return new ElasticSearchMetaData(fieldNames, columnTypes); }