Elasticsearch usando NEST: Como configurar analisadores para encontrar palavras parciais?
Eu estou tentando fazer uma busca por palavra parcial, ignorando o invólucro e ignorando a acentuação de algumas letras. É possível? Acho ngram com tokenizer padrão deve fazer o truque, mas eu não entendo como fazê-lo com o NEST.
Exemplo: "musiic" deve corresponder aos registros que possuem "music"
A versão que estou usando do Elasticsearch é 1.9.
Eu estou fazendo assim, mas não funciona ...
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);
Obrigado,
David