Elasticsearch przy użyciu NEST: Jak skonfigurować analizatory, aby znaleźć częściowe słowa?
Próbuję wyszukiwać według częściowego słowa, ignorując obudowę i ignorując akcentowanie niektórych liter. Czy to możliwe? Myślę, że ngram z domyślnym tokenizerem powinien załatwić sprawę, ale nie rozumiem, jak to zrobić za pomocą NEST.
Przykład: „muzyka” powinna pasować do rekordów zawierających „muzykę”
Wersja, w której używam Elasticsearch, to 1,9.
Robię tak, ale to nie działa ...
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);
Dzięki,
David