使用NEST创建自定义标记filter

如何使用具有此类JSON的NEST配置索引:

"settings":{ "analysis":{ "filter":{ "name_ngrams":{ "side":"front", "max_gram":50, "min_gram":2, "type":"edgeNGram" } }, "analyzer":{ "partial_name":{ "filter":[ "standard", "lowercase", "asciifolding", "name_ngrams" ], "type":"custom", "tokenizer":"standard" } } } 

我可以使用CustomAnalyzer类创建我的自定义分析器,但我无法找到如何创建自定义filter并在我的分析器中注册它。

提前致谢!

经过一番搜索,我找到了一个解决方案:

 var partialName = new CustomAnalyzer { Filter = new List {"lowercase", "name_ngrams", "standard", "asciifolding"}, Tokenizer = "standard" }; var fullName = new CustomAnalyzer { Filter = new List {"standard", "lowercase", "asciifolding"}, Tokenizer = "standard" }; client.CreateIndex("indexname", c => c .Analysis(descriptor => descriptor .TokenFilters(bases => bases.Add("name_ngrams", new EdgeNGramTokenFilter { MaxGram = 20, MinGram = 2, Side = "front" })) .Analyzers(bases => bases .Add("partial_name", partialName) .Add("full_name", fullName)) ) .AddMapping(m => m .Properties(o => o .String(i => i .Name(x => x.Name) .IndexAnalyzer("partial_name") .SearchAnalyzer("full_name") ))));