Я пытаюсь использовать NEST Automapping для создания шаблона индекса следующим образом:
public void ConfigureTemplate()
{
var templateName = $"{config.ElasticIndexPrefix}_template";
var client = OpenConnection(config.ElasticEndpoints);
var indexResponse = client.PutIndexTemplate(templateName, t => t
.IndexPatterns($"{config.ElasticIndexPrefix}_*")
.Settings(s => s
.NumberOfReplicas(2)
.NumberOfShards(4)
.Setting("index.lifecycle.name", $"{config.ElasticIndexPrefix}-ilm-policy")
.Setting("index.lifecycle.rollover_alias", $"{config.ElasticIndexPrefix}_alias")
)
.Mappings(ms => ms
.Map<PodcastAsset>(m => m.AutoMap())
.Map<PodcastSource>(m => m.AutoMap())
)
.Aliases(a => a
.Alias($"{config.ElasticIndexPrefix}_alias", newAlias => newAlias
//No Setting for is_write_index here
)
)
);
_logger.Info($"Template {templateName} asserted.");
}
С помощью REST API нужно просто установить ключ / значение следующим образом:
PUT /_templates/my-template
{
"index_patterns": ["mysystem-*"],
"aliases": {
"mysystem-logs": {
"is_write_index": true
}
},
"settings": {
"index.number_of_shards": 6,
"index.number_of_replicas": 0,
"index.lifecycle.name": "mysystem-ilm-policy",
"index.lifecycle.rollover_alias": "mysystem-logs"
},
"order": 10
}
Хотя это работает, проблема здесь в том, что мне не помогает автоматическое преобразование интеграции NEST.
Как установить значение alias.is_write_index при создании шаблона индекса с помощью NEST?
Большое спасибо!
-Z