Exemple #1
0
 public VacancySearchConfigurationService(
     IConfigurationService configurationService,
     SearchFactorConfiguration searchFactorConfiguration)
 {
     _configurationService      = configurationService;
     _searchFactorConfiguration = searchFactorConfiguration;
 }
 public ApprenticeshipsSearchProvider(
     IElasticsearchClientFactory elasticsearchClientFactory,
     IMapper vacancySearchMapper,
     IConfigurationService configurationService, ILogService logger)
 {
     _elasticsearchClientFactory = elasticsearchClientFactory;
     _vacancySearchMapper        = vacancySearchMapper;
     _searchConfiguration        = configurationService.Get <SearchConfiguration>();
     _searchFactorConfiguration  = configurationService.Get <SearchFactorConfiguration>();
     _logger = logger;
 }
Exemple #3
0
        public SearchResponse Search(SearchRequest request)
        {
            var searchFactorConfiguration = new SearchFactorConfiguration
            {
                DescriptionFactors = GetFactorsFromRequest(SearchFactorKeys.Description, request),
                EmployerFactors    = GetFactorsFromRequest(SearchFactorKeys.Employer, request),
                JobTitleFactors    = GetFactorsFromRequest(SearchFactorKeys.JobTitle, request),
                ProviderFactors    = GetFactorsFromRequest(SearchFactorKeys.Provider, request)
            };

            var configurationService = new VacancySearchConfigurationService(
                _configurationService, searchFactorConfiguration);

            var elasticsearchClientFactory = new ElasticsearchClientFactory(
                configurationService, _logService);

            var searchProvider = new ApprenticeshipsSearchProvider(
                elasticsearchClientFactory, _mapper, configurationService, _logService);

            var parameters = new ApprenticeshipSearchParameters
            {
                PageNumber  = 1,
                PageSize    = 50,
                SearchField = GetSearchFieldFromRequest(request),
                Keywords    = request.SearchTerms,
                SortType    = VacancySearchSortType.Relevancy
            };

            var indexDate  = new DateTime(2020, 01, 01, 12, 00, 00);
            var indexAlias = elasticsearchClientFactory.GetIndexNameForType(typeof(ApprenticeshipSummary));
            var indexName  = string.Format("{0}.{1}", indexAlias, indexDate.ToUniversalTime().ToString("yyyy-MM-dd-HH"));

            var vacancies = searchProvider.FindVacancies(parameters, indexName);

            return(new SearchResponse
            {
                Request = request,
                SearchResults = vacancies.Results.ToArray(),
                Total = vacancies.Total,
                SearchFactorConfiguration = configurationService.Get <SearchFactorConfiguration>(),
                Parameters = parameters
            });
        }