我想用部分單詞進行搜索,忽略外殼並忽略某些字母的加重。可能嗎?我認爲ngram與默認的tokenizer應該做的伎倆,但我不明白如何與NEST做到這一點。Elasticsearch使用NEST:如何配置分析器來查找部分單詞?
例:「musiic」應該與有「音樂」的記錄
我使用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);
感謝,
大衛