小编RLe*_*wis的帖子

为Elastic Search指定和使用带有C#NEST客户端的NGramTokenizer

更新以显示工作样本

我试图在ElasticSearch中对一组用户名进行部分搜索.

四处寻找已经指明了我的nGram Tokenizer方向,但我对正确的实施感到难过并且没有得到任何结果.

这是我正在处理的项目中剥离的相关代码.

我尝试过不同的组合和搜索类型无济于事.

setup.cs

var client = new ElasticClient(settings.ConnectionSettings);

// (Try and) Setup the nGram tokenizer.
var indexSettings = new IndexSettings();
var custonAnalyzer = new CustomAnalyzer();

customAnalyzer.Tokenizer = "mynGram";
customAnalyzer.Filter = new List<string> { "lowercase" };

indexSettings.Analysis.Analyzers.Add("mynGram", customAnalyzer);

indexSettings.Analysis.Tokenizers.Add("mynGram", new NGramTokenizer
                                                    {
                                                        MaxGram = 10,
                                                        MinGram = 2
                                                    });

client.CreateIndex(settings.ConnectionSettings.DefaultIndex, indexSettings);

client.MapFromAttributes<Profile>();

// Create and add a new profile object.
var profile = new Profile
                  {
                      Id = "1",
                      Username = "Russell"
                  };


client.IndexAsync(profile);

// …
Run Code Online (Sandbox Code Playgroud)

c# elasticsearch nest

6
推荐指数
1
解决办法
3214
查看次数

标签 统计

c# ×1

elasticsearch ×1

nest ×1