How to add auto complete feature on an Attachment fields while search- Elastic search (NEST)

  1. I would like to add autocomplete feature to my search application which fetches documents based on the search query. Can some one help me how this can be done on an attachment fields like content and title fields. (completion suggester)
    Here are my class and their mappings.

    public class Document

         public string Title { get; set; } //same as the name of the file i.e in attachment or any personal title you want to give
         public string FilePath { get; set; }
         public Attachment File { get; set; }

    public class Attachment
    [String(Name = "_name")]
    public string Name { get; set; }

             [String(Name = "_content", TermVector = TermVectorOption.WithPositionsOffsets)]
             public string Content { get; set; }
             [String(Name = "_content_type")]
             public string ContentType { get; set; }
             [String(Name = "_author")]
             public string Author { get; set; }
             [String(Name = "_date")]
             public DateTime ModifiedDate { get; set; } //last modified date of the file

Mapping and creating index:

var createIndexResponse =
                           client.CreateIndex(defaultIndex, c => c
                           .Mappings(m => m
                           .Map<Document>(mp => mp
                           .Properties(ps => ps
                               .String(s => s.Name(e => e.Title))
                               .Attachment(s => s.Name(p => p.File)
                                   .FileField(ff => ff.Name(f => f.File)                                   .TermVector(TermVectorOption.WithPositionsOffsetsPayloads)
  1. And also can we use multiple analyzers on the same field? because I'm already using english analyzer on my content so that it will look for all the possibilities(like if I search for property, it will check for properties etc ) of the search term and then generate results. If I want to add auto complete feature, then I need to either use edgeNgram or Ngram . Is it possible to do so along side english analyzer? (Few of the examples used N-grams for analyzing, but I'm afraid that I might loose the advantages of English analyzer if I use N-gram )



I was trying to change the mappings and create an analyzer to store the content as edge_ngram

   var fullNameFilters = new List<string> { "lowercase","edge_ngram_analyzer"};
    var createIndexResponse =
                   client.CreateIndex(defaultIndex, c => c
                   .Custom("edge_ngram_analyzer", ff=>ff.Filters(fullNameFilters).Tokenizer("standard")))))
                   .Mappings(m => m
                   .Map<Document>(mp => mp
                   .Properties(ps => ps
                       .String(s => s.Name(e => e.Title).Analyzer("autocomplete"))                          
                       .Attachment(s => s.Name(p => p.File)
                           .FileField(ff => ff.Name(f => f.File)

I'm not able to add the filters part for the analyzer I have used. I want to replicate as something like below.

  "settings": { 
    "analysis": { 
      "filter": { 
        "myNGramFilter": {
          "type": "edgeNGram",
          "min_gram": 1,
          "max_gram": 40 
      "analyzer": { 
        "myNGramAnalyzer": { 
          "type": "custom",
          "tokenizer": "standard",
          "filter": ["lowercase", "myNGramFilter"]

How can I add the filter part for the same.