/// <inheritdoc cref="ISearchProvider.Search"/> public virtual IEnumerable <Dictionary <string, string> > Search(SearchQuery request) { var entitySchema = SetSchemaColumnAlliases(request); var query = _queryBuilder.BuildQuery(request); if (query == null) { _log.Error($"There is empty request. RootSchema is {request.SchemaName}"); return(null); } var elasticCollection = GetElasticCollection(query); var resultCollection = GetResponseCollection(elasticCollection); if (request.PrimaryColumnValue.HasValue) { resultCollection = FilterCollectionByPrimaryColumnValue(resultCollection, request.PrimaryColumnValue.Value, entitySchema); } return(resultCollection); }
/// <summary> /// Send request to elasticsearch. /// </summary> /// <param name="queries">Key requests for elasticsearch.</param> /// <returns>Results record found on request.</returns> public virtual IEnumerable <Dictionary <string, string> > SearchEmails(List <string> queries) { try { var resultCollection = new List <Dictionary <string, string> >(); foreach (var request in CreateESSelectQueries(queries)) { SetRequestQueries(request); var query = _queryBuilder.BuildQuery(request); if (query == null) { _log.Error("There is empty request"); return(null); } var elasticCollection = _elasticSearchRepository.GetCollection(query); var collection = GetCollection(elasticCollection, request.SchemaName); resultCollection.AddRange(collection); } return(resultCollection); } catch (Exception exp) { _log.Error(string.Format("{0}\r\n{1}", exp.Message, exp.StackTrace)); throw; } }