ElasticSearch Nest Insertar / Actualizar

He creado un índice en elástico usando la siguiente consulta:

PUT public_site
{
  "mappings": {
    "page": {
      "properties": {
        "url": {
          "type": "string"
        },
        "title":{
          "type": "string"
        },
        "body":{
          "type": "string"
        },
        "meta_description":{
          "type": "string"
        },
        "keywords":{
          "type": "string"
        },
        "category":{
          "type": "string"
        },
        "last_updated_date":{
          "type": "date"
        },
        "source_id":{
        "type":"string"
        }
      }
    }
  }
}

Me gustaría insertar un documento en este índice utilizando la biblioteca .net NEST. Mi problema es que la firma del método de actualización .net no tiene ningún sentido para mí.

client.Update<TDocument>(IUpdateRequest<TDocument,TPartialDocument>)

La biblioteca de Java tiene mucho más sentido para mí:

UpdateRequest updateRequest = new UpdateRequest();
updateRequest.index("index");
updateRequest.type("type");
updateRequest.id("1");
updateRequest.doc(jsonBuilder()
        .startObject()
            .field("gender", "male")
        .endObject());
client.update(updateRequest).get();

En NEST donde hacen losTDocument yTPartialDocument vienen las clases? ¿Estas clases de C # que hago representan mi índice?

Respuestas a la pregunta(1)

Su respuesta a la pregunta