示例#1
0
 JobAdSearchResults IJobAdSearchService.Search(Guid?memberId, JobAdSearchQuery query)
 {
     return(Search(
                memberId,
                query,
                (m, q) => _jobAdActivityFiltersQuery.GetIncludeJobAdIds(m, q),
                (m, q) => _jobAdActivityFiltersQuery.GetExcludeJobAdIds(m, q)));
 }
示例#2
0
        protected JobAdSearchResults Search(IMember member, JobAdSearchQuery jobAdQuery)
        {
            var reader   = _indexWriter.getReader();
            var searcher = new Searcher(reader);
            var query    = _indexer.GetQuery(jobAdQuery);
            var filter   = _indexer.GetFilter(
                jobAdQuery,
                _jobAdActivityFiltersQuery.GetIncludeJobAdIds(member, jobAdQuery),
                _jobAdActivityFiltersQuery.GetExcludeJobAdIds(member, jobAdQuery));
            var selections    = _indexer.GetSelections(jobAdQuery);
            var sort          = _indexer.GetSort(member, jobAdQuery);
            var searchResults = searcher.Search(query, filter, selections, sort == null ? null : sort.getSort(), jobAdQuery.Skip, jobAdQuery.Take ?? reader.maxDoc(), true);

            return(searchResults);
        }
示例#3
0
        private ICollection <Guid> Filter(IMember member, JobAdSearchQuery query, IEnumerable <Guid> allJobAdIds)
        {
            var includeJobAdIds = _jobAdActivityFiltersQuery.GetIncludeJobAdIds(member, query);
            var jobAdIds        = includeJobAdIds != null
                                ? allJobAdIds.Intersect(includeJobAdIds)
                                : allJobAdIds;

            var excludeJobAdIds = _jobAdActivityFiltersQuery.GetExcludeJobAdIds(member, query);

            jobAdIds = excludeJobAdIds != null
                            ? jobAdIds.Except(excludeJobAdIds)
                            : jobAdIds;

            return(jobAdIds.ToArray());
        }