ES NEST - How to Create an index and Bulk index dynamic objects with geometry (geo_point or geo_shape)?

Hi, guys!
I have a Dataset for which I don't know or have the type in advance, nor the number of properties or their type.

On execution, I obtain for that Dataset a DatasetSchema that contain the names, types and some flags for the properties.

For geometry properties I have their GeoJson representation stored as string and I have some flags (isGeoShape, isGeoPoint) that tell the ES property type.

I'm also using NetTopologySuite if it's needed to parse those GeoJsons to actual Geometry objects, but i rather not do this extra parsing and use the GeoJson strings instead.

class DatasetSchema {
	List<DatasetField> Fields;

class DatasetField { 
	string Name;
	Type DataType;
	bool isGeoShape;
	bool isGeoPoint;


  1. How can I create such an ES index with unknown / dynamic mappings schema with NEST high level client with those geometry properties?

  2. How can I Bulk index those documents with NEST high level client with Bulk or BulkAll APIs with those geometry properties?

I saw here and here that the bulk indexing might be done with BulkDescriptor:

dynamic obj = new System.Dynamic.ExpandoObject();
	// ….
var descriptor = new BulkDescriptor();
foreach (var doc in values)
    descriptor.Index<object>(i => i

Still, I’m curious how geometry types should be treated?

Thank you very much!
Any thoughts or suggestions are welcomed!