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