更新以显示工作样本
我试图在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)