private QueryContainer QueryContainer(
     QueryContainerDescriptor <TContentIndexItem> query, Dto.SearchInput input)
 => query
 .MultiMatch(qs => qs
             .Analyzer("my-search-analyzer")
             .Fields(Fields)
             .Query(input.Query));
 public async Task <ISearchResponse <TContentIndexItem> > SearchAsync(Dto.SearchInput input)
 {
     return(await Client
            .SearchAsync <TContentIndexItem>(s => s
                                             .Index(CurrentIndexName)
                                             .From(input.PageIndex * input.PageSize)
                                             .Size(input.PageSize)
                                             .PostFilter(filter => filter
                                                         .Term(field => field.IsActive, true))
                                             .Highlight(Highlight)
                                             .Query(q => QueryContainer(q, input))
                                             .Suggest(sg => Suggest(sg, input))));
 }
 protected override SuggestContainerDescriptor <BookIndexItem> Suggest(
     SuggestContainerDescriptor <BookIndexItem> suggest, Dto.SearchInput input)
 => suggest
 .Term("authors-suggest", t => t
       //.MaxEdits(1)
       //.MaxInspections(2)
       //.MaxTermFrequency(3)
       //.MinDocFrequency(4)
       //.MinWordLength(5)
       //.PrefixLength(6)
       //.ShardSize(7)
       //.Size(8)
       .Analyzer("my-search-analyzer")
       .SuggestMode(SuggestMode.Always)
       .Text(input.Query)
       .Field(f => f.Authors))
 .Term("title-suggest", t => t
       .Analyzer("my-search-analyzer")
       .SuggestMode(SuggestMode.Always)
       .Text(input.Query)
       .Field(f => f.Title));
 protected abstract SuggestContainerDescriptor <TContentIndexItem> Suggest(
     SuggestContainerDescriptor <TContentIndexItem> suggest, Dto.SearchInput input);