protected LuceneFilter GetFilter(Salary salary, bool excludeNoSalary) { int minSalary, maxSalary; //Ensure salary is yearly before filtering if (salary != null) { salary = salary.ToRate(SalaryRate.Year); } if (salary == null || !GetFilterFieldValues(salary.LowerBound, salary.UpperBound, out minSalary, out maxSalary) || (minSalary == 0 && maxSalary == int.MaxValue)) { return(excludeNoSalary ? _nonNullSalaryFilter : null); } var boundaryFilters = new List <LuceneFilter>(2); if (minSalary != 0) { boundaryFilters.Add(FieldCacheRangeFilter.newIntRange(_maxFieldName, new java.lang.Integer(minSalary), null, true, true)); } if (maxSalary != int.MaxValue) { boundaryFilters.Add(FieldCacheRangeFilter.newIntRange(_minFieldName, new java.lang.Integer(1), new java.lang.Integer(maxSalary), true, true)); } var salaryFilter = new ChainedFilter(boundaryFilters.ToArray(), ChainedFilter.AND); return(!excludeNoSalary ? new ChainedFilter(new[] { salaryFilter, _nullSalaryFilter }, ChainedFilter.OR) : salaryFilter); }
protected LuceneFilter GetFilter(DateTime?minTimestamp) { return(minTimestamp == null ? null : FieldCacheRangeFilter.newIntRange(_fieldName, new java.lang.Integer(minTimestamp.Value.ToFieldValue(_timeGranularity)), null, true, true)); }