Exemplo n.º 1
0
        Filter IContentHandler.GetFilter(ResourceSearchQuery searchQuery)
        {
            if (!searchQuery.SubcategoryId.HasValue && !searchQuery.CategoryId.HasValue)
            {
                return(null);
            }

            var filter = new TermsFilter();

            //use subcategory in preference to category
            if (searchQuery.SubcategoryId.HasValue)
            {
                filter.addTerm(new Term(FieldName.SubcategoryId, searchQuery.SubcategoryId.Value.ToFieldValue()));
            }
            else
            {
                var category = _categories.FirstOrDefault(c => c.Id == searchQuery.CategoryId);
                if (category != null)
                {
                    foreach (var subcategory in category.Subcategories)
                    {
                        filter.addTerm(new Term(FieldName.SubcategoryId, subcategory.Id.ToFieldValue()));
                    }
                }
            }

            return(filter);
        }
Exemplo n.º 2
0
        LuceneFilter IContentHandler.GetFilter(JobAdSearchQuery searchQuery)
        {
            // If the community is not set then only include non-community jobs.

            if (!searchQuery.CommunityId.HasValue)
            {
                var filter = new TermsFilter();
                filter.addTerm(new Term(FieldName.HasCommunity, HasNoCommunityId));
                return(filter);
            }

            // The community is set so it needs to be included.

            var specificCommunityFilter = new TermsFilter();

            specificCommunityFilter.addTerm(new Term(FieldName.Community, searchQuery.CommunityId.Value.ToFieldValue()));

            // If it is only the community that must be returned then return it.

            if (searchQuery.CommunityOnly.HasValue && searchQuery.CommunityOnly.Value)
            {
                return(specificCommunityFilter);
            }

            // Need to include those that match the community, or have no community set, i.e. all other community jobs should not be retutned.

            var noCommunityFilter = new TermsFilter();

            noCommunityFilter.addTerm(new Term(FieldName.HasCommunity, HasNoCommunityId));

            return(new ChainedFilter(new Filter[] { specificCommunityFilter, noCommunityFilter }, ChainedFilter.OR));
        }
Exemplo n.º 3
0
        LuceneFilter IContentHandler.GetFilter(MemberSearchQuery searchQuery)
        {
            if (searchQuery.HasResume == null)
            {
                return(null);
            }

            var filter = new TermsFilter();

            filter.addTerm(new Term(FieldName.HasResume, NumericUtils.intToPrefixCoded(searchQuery.HasResume.Value ? 1 : 0)));
            return(filter);
        }
Exemplo n.º 4
0
        LuceneFilter IContentHandler.GetFilter(MemberSearchQuery searchQuery)
        {
            if (searchQuery.CommunityId == null)
            {
                return(null);
            }

            var filter = new TermsFilter();

            filter.addTerm(new Term(FieldName.Community, searchQuery.CommunityId.Value.ToFieldValue()));
            return(filter);
        }
Exemplo n.º 5
0
        LuceneFilter IContentHandler.GetFilter(MemberSearchQuery searchQuery)
        {
            if (searchQuery.VisaStatusList.IsNullOrEmpty())
            {
                return(null);
            }

            var filter = new TermsFilter();

            foreach (var status in searchQuery.VisaStatusList)
            {
                filter.addTerm(new Term(FieldName.VisaStatus, status.Encode()));

                // Everyone who does not have a visa status is considered a citizen.

                if (status == VisaStatus.Citizen)
                {
                    filter.addTerm(new Term(FieldName.VisaStatus, ((VisaStatus?)null).Encode()));
                    filter.addTerm(new Term(FieldName.VisaStatus, VisaStatus.NotApplicable.Encode()));
                }
            }
            return(filter);
        }
Exemplo n.º 6
0
        LuceneFilter IContentHandler.GetFilter(MemberSearchQuery searchQuery)
        {
            if (!searchQuery.EthnicStatus.HasValue || searchQuery.EthnicStatus.Value == default(EthnicStatus))
            {
                return(null);
            }

            var filter = new TermsFilter();

            foreach (var status in Split(searchQuery.EthnicStatus.Value))
            {
                filter.addTerm(new Term(FieldName.EthnicStatus, Encode(status)));
            }
            return(filter);
        }
Exemplo n.º 7
0
        public LuceneFilter GetFilter(JobAdSearchQuery searchQuery)
        {
            if (searchQuery.ExcludeIntegratorIds == null || searchQuery.ExcludeIntegratorIds.Count == 0)
            {
                return(null);
            }

            var termsFilter = new TermsFilter();

            foreach (var integratorId in searchQuery.ExcludeIntegratorIds)
            {
                termsFilter.addTerm(new Term(FieldName.Integrator, integratorId.ToFieldValue()));
            }

            var filter = new BooleanFilter();

            filter.add(new FilterClause(termsFilter, BooleanClause.Occur.MUST_NOT));

            return(filter);
        }