/// <summary> /// Executes an asyncronus SearchQuery using the Search API and returns a list of generic pocos. /// https://www.elastic.co/guide/en/elasticsearch/reference/5.4/_the_search_api.html /// </summary> /// <typeparam name="TPoco">Has to Implement the IElasticPoco interface</typeparam> /// <param name="searchQuery">SearchQuery object.</param> /// <returns>IEnumerable<TPoco></returns> public async Task <IEnumerable <TPoco> > ExecuteSearchAsync <TPoco>(IExecutableSearchQuery <TPoco> searchQuery) where TPoco : IElasticPoco { var query = searchQuery as SearchQuery <TPoco>; IndexExists(query.IndexName); return(ProcessSeachResponse <TPoco>(await LowLevelClient.SearchAsync <string>(query.IndexName, Generator.Generate(query)))); }
/// <summary> /// /// </summary> /// <typeparam name="TPoco"></typeparam> /// <param name="search"></param> /// <param name="client"></param> /// <returns></returns> public static IEnumerable <TPoco> ExecuteWith <TPoco>(this IExecutableSearchQuery <TPoco> search, ElasticLiteClient client) where TPoco : IElasticPoco => client.ExecuteSearch(search);
/// <summary> /// /// </summary> /// <param name="search"></param> /// <param name="client"></param> public static async Task <IEnumerable <TPoco> > ExecuteAsyncWith <TPoco>(this IExecutableSearchQuery <TPoco> search, ElasticLiteClient client) where TPoco : IElasticPoco => await client.ExecuteSearchAsync(search);