我试图通过部分单词进行搜索,忽略大小写并忽略某些字母的重音。是否可以?我认为带有默认标记器的 ngram 应该可以解决问题,但我不明白如何使用 NEST 来做到这一点。
示例:“musiic”应匹配包含“music”的记录
我使用的 Elasticsearch 版本是 1.9。
我正在这样做,但它不起作用......
var ix = new IndexSettings();
ix.Add("analysis",
@"{
'index_analyzer' : {
'my_index_analyzer' : {
'type' : 'custom',
'tokenizer' : 'standard',
'filter' : ['lowercase', 'mynGram']
}
},
'search_analyzer' : {
'my_search_analyzer' : {
'type' : 'custom',
'tokenizer' : 'standard',
'filter' : ['standard', 'lowercase', 'mynGram']
}
},
'filter' : {
'mynGram' : {
'type' : 'nGram',
'min_gram' : 2,
'max_gram' : 50
}
}
}");
client.CreateIndex("sample", ix);
谢谢,
大卫