I have run into the same issue. The workaround for this is to not use the Fluent Mapping and just specify your analysis settings directly as Fluent Dictionary entries via the Settings.Add()
method. Below is an example that should configure your index correctly.
var result = this._client.CreateIndex("mkfindex1", c => c
.Settings.Add("analysis.analyzer", "str_index_analyzer")
.Settings.add("analysis.analyzer.str_index_analyzer.type", "custom")
.Settings.add("analysis.analyzer.str_index_analyzer.tokenizer", "keyword")
.Settings.Add("analysis.analyzer.str_index_analyzer.filter.0", "lowercase")
.Settings.Add("analysis.analyzer.str_index_analyzer.filter.1", "substring")
.Settings.add("analysis.filter.substring.type", "nGram")
.Settings.add("analysis.filter.substring.min_gram", "2")
.Settings.add("analysis.filter.substring.max_gram", "50")
.Settings.add("analysis.filter.substring.token_chars.0", "letter")
.Settings.add("analysis.filter.substring.token_chars.0", "digit")
);
Hope this helps.