Especificación y uso de un NGramTokenizer con el cliente NEST de C # para Elastic Search

Actualizado para mostrar una muestra de trabajo.

Estoy tratando de hacer una búsqueda parcial en una colección de nombres de usuario en ElasticSearch.

Buscando me ha apuntado en elnGram Tokenizer dirección pero estoy perplejo en la implementación adecuada y no logro obtener ningún resultado.

Este es el código relevante eliminado del proyecto en el que estoy trabajando.

He intentado diferentes combinaciones y tipos de búsqueda en vano.

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);

// Do search for object
var s = new SearchDescriptor<Profile>().Query(t => t.Term(c => c.Username, "russ"));

var results = client.Search<Profile>(s);

Perfil.cs

public class Profile
{
    public string Id { get; set; }

    [ElasticProperty(IndexAnalyzer = "mynGram")]
    public string Username { get; set; }
}

Algunos consejos podrían ser muy apreciados.

Respuestas a la pregunta(1)

Su respuesta a la pregunta