It's not clear how you would like suggesters to work in your case. The simplest approach to start with is to:

1. Map a field with the `completion` datatype

    ```c#
    public class Question
    {
        public CompletionField TitleSuggest { get; set; }
    }

    var createIndexResponse = client.CreateIndex("my_index", c => c
        .Mappings(m => m
            .Map<Question>(u => u
                .AutoMap()
            )
        )
    );
    ```

2. Index a document with completion inputs

    ```c#
    var question = new Question
    {
        TitleSuggest = new CompletionField
        {
            Input = new[] { "This is the title" },
            Weight = 5
        }
    };

    client.Index(question, i => i.Index("my_index").Refresh(Refresh.WaitFor));
    ```

3. Search using the [completion suggester](https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-suggesters-completion.html)

    ```c#
var response = client.Search<Question>(s => s
.Index("my_index")
        .Suggest(su => su
    .Completion("suggested_titles", cs => cs
    .Field(f => f.TitleSuggest)
    .Prefix("This is")
    .Fuzzy(f => f
    .Fuzziness(Fuzziness.Auto)
    )
    .Size(5)
    )
        )
    );

    // do something with suggestions
    var suggestions =
        from suggest in response.Suggest["suggested_titles"]
        from option in suggest.Options
        select new
        {
            Id = option.Source.Id,
            Text = option.Text
        };
    ```

---
NEW: Monitor These Apps!
elasticsearch, apache solr, apache hbase, hadoop, redis, casssandra, amazon cloudwatch, mysql, memcached, apache kafka, apache zookeeper, apache storm, ubuntu, centOS, red hat, debian, puppet labs, java, senseiDB