Есть несколько вариантов, которые у вас есть для указания другого имени типа к одному NEST будет вывести из названия POCO
1.Use от перегрузки Map<T>(TypeName type, Func<TypeMappingDescriptor<T>, ITypeMapping>>)
var createIndexResponse = client.CreateIndex("testindex", a => a
.Mappings(f => f
.Map<BankPaymentLogModel>("my-type", b => b
.Properties(c => c
.String(d => d
.Name(e => e.testProperty)
)
)
)
)
);
Использование этого метода, однако, означало бы, что вам нужно будет позвонить .Type("my-type")
для каждого запроса, где используется 0CPOCO, так что в запросе будет отправлено одно и то же имя типа. Таким образом, следующие опции могут быть лучше
2.Use ElasticsearchTypeAttribute
на BankPaymentLogModel
типа, чтобы указать имя типа
[ElasticsearchType(Name = "my-type")]
public class BankPaymentLogModel
{
public string testProperty { get; set; }
}
var createIndexResponse = client.CreateIndex("testindex", a => a
.Mappings(f => f
.Map<BankPaymentLogModel>(b => b
.Properties(c => c
.String(d => d
.Name(e => e.testProperty)
)
)
)
)
);
3.Or, если вам не нравится, атрибуты, имя типа по умолчанию может быть настроен на ConnectionSettings
для BankPaymentLogModel
var pool = new SingleNodeConnectionPool(new Uri("http://localhost:9200"));
var connectionSettings = new ConnectionSettings(pool)
.InferMappingFor<BankPaymentLogModel>(m => m
.TypeName("my-type")
);
var client = new ElasticClient(connectionSettings);
var createIndexResponse = client.CreateIndex("testindex", a => a
.Mappings(f => f
.Map<BankPaymentLogModel>(b => b
.Properties(c => c
.String(d => d
.Name(e => e.testProperty)
)
)
)
)
);
Все 3 варианта выше производят следующий запрос JSon
PUT http://localhost:9200/testindex
{
"mappings": {
"my-type": {
"properties": {
"testProperty": {
"type": "string"
}
}
}
}
}