in src/main/java/org/opensearch/geospatial/processor/FeatureProcessor.java [34:48]
public IngestDocument execute(IngestDocument ingestDocument) {
// 1. Create Feature from ingesting document
// 2. Remove field "type", since, we are not storing as geo-json
// 3. Move properties.* as document's fields, since, we don't have to group it inside "properties"
// 5. Move geojson's geometry object to geoshape field.
Feature feature = FeatureFactory.create(ingestDocument.getSourceAndMetadata());
ingestDocument.removeField(Feature.TYPE_KEY);
feature.getProperties().forEach((k, v) -> ingestDocument.setFieldValue(k, v));
if (ingestDocument.hasField(Feature.PROPERTIES_KEY)) { // properties are optional in Feature
ingestDocument.removeField(Feature.PROPERTIES_KEY);
}
ingestDocument.setFieldValue(this.geoShapeField, feature.getGeometry());
ingestDocument.removeField(Feature.GEOMETRY_KEY);
return ingestDocument;
}