Как установить Alias.is_write_index в Elasticsearch.Net/NEST при создании шаблона - PullRequest
0 голосов
/ 09 октября 2019

Я пытаюсь использовать 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

...