public ElasticResponse <T> ExecuteSearchRequest <T>(SearchDescriptor <T> searchDescriptor) where T : class { try { var client = GetElasticClient(); var response = client.Search <T>(s => searchDescriptor); if (response.TimedOut) { return(ElasticResponse <T> .FailResponse(TimeoutMessage)); } return(!response.ApiCall.Success ? ElasticResponse <T> .FailResponse(response.ApiCall.OriginalException.Message) : ElasticResponse <T> .SuccessResponse(response)); } catch { return(ElasticResponse <T> .FailResponse(ServerErrorMessage)); } }
public ElasticResponse <T>[] ExecuteSearchRequestWithScroll <T>(SearchDescriptor <T> searchDescriptor) where T : class { var scrollTime = new Time(2000); var searchDescriptorWithScroll = searchDescriptor.From(0).Size(10).Scroll(scrollTime); var results = new List <ElasticResponse <T> >(); try { var client = GetElasticClient(); var response = client.Search <T>(s => searchDescriptorWithScroll); if (!response.ApiCall.Success) { return new[] { ElasticResponse <T> .FailResponse(response.ApiCall.OriginalException.Message) } } ; results.Add(ElasticResponse <T> .SuccessResponse(response)); do { var currentResponse = response; response = client.Scroll <T>(scrollTime, currentResponse.ScrollId); if (!response.ApiCall.Success) { return new[] { ElasticResponse <T> .FailResponse(response.ApiCall.OriginalException.Message) } } ; results.Add(ElasticResponse <T> .SuccessResponse(response)); } while (response.IsValid && response.Documents.Any()); return(results.ToArray()); } catch { return(new[] { ElasticResponse <T> .FailResponse(ServerErrorMessage) }); } }