C# NGram标记器中最大和最小值的差异
我目前正在尝试在.NET项目中配置elasticsearch索引(我是ES新手) 我们正在使用NEST 7.3.0C# NGram标记器中最大和最小值的差异,c#,elasticsearch,nest,C#,elasticsearch,Nest,我目前正在尝试在.NET项目中配置elasticsearch索引(我是ES新手) 我们正在使用NEST 7.3.0 client.Indices.Create(lineItemIndex, c => c .Settings(s => s .Analysis(a => a .Analyzers(aa => aa
client.Indices.Create(lineItemIndex,
c => c
.Settings(s => s
.Analysis(a => a
.Analyzers(aa => aa
.Custom("mynGram_analyzer",ca => ca
.Filters(new List<string> {"lowercase"})
.Tokenizer("mynGram")))
.TokenFilters(tf => tf
.NGram("mynGram", td => td
.MaxGram(15).MinGram(4)))))
.Map<ElasticSearchLineItem>(m => m
.Properties(ps => ps
.Text(ss => ss
.Name(na => na.LineItemName)
.Analyzer("mynGram")))
.Properties(ps => ps
.Keyword(kw => kw
.Name(na => na.LineItemId)))
.Properties(ps => ps
.Text(ss => ss
.Name(na => na.LineItemNumber)
.Analyzer("mynGram")))));
client.index.Create(lineItemIndex,
c=>c
.Settings(s=>s
.分析(a=>a
.分析仪(aa=>aa
.Custom(“mynGram_分析器”,ca=>ca
.Filters(新列表{“小写”})
.Tokenizer(“mynGram”))
.TokenFilters(tf=>tf
.NGram(“mynGram”,td=>td
.MaxGram(15).MinGram(4(())))
.Map(m=>m
.Properties(ps=>ps
.Text(ss=>ss
.Name(na=>na.LineItemName)
.Analyzer(“mynGram”))
.Properties(ps=>ps
.关键字(千瓦=>千瓦
.Name(na=>na.LineItemId)))
.Properties(ps=>ps
.Text(ss=>ss
.Name(na=>na.LineItemNumber)
.分析器(“mynGram”()()));
我得到以下错误:
类型:非法参数\u异常原因:“NGram标记器中最大值和最小值之间的差异必须小于或等于:但为[11]。可以通过更改[index.max\u NGram\u diff]索引级别设置来设置此限制。”
我明白问题是什么。但是我不知道在哪里设置这个最大内存差异设置。我正试着看清楚
但他们使用3表示最小值和最大值
我还发现了一个例子,他们在JSON中有设置,可以发送到ES,但我不能在c#代码中复制它。我希望有人能帮助我。您可以使用以下命令更改此设置
var createIndexResponse = await client.Indices.CreateAsync("index_name",
c => c.Settings(s => s.Setting(UpdatableIndexSettings.MaxNGramDiff, 11)));
希望有帮助