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); }
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)); }
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); }
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); }
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); }
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); }
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); }