internal static void AddDateRangeQuery(BooleanQuery query, DateRangeSearchParam.DateRangeField dateRangeField, BooleanClause.Occur occurance) { var startDateTime = dateRangeField.StartDate; if (dateRangeField.InclusiveStart) { if (startDateTime != DateTime.MinValue) { startDateTime.ChangeTime(0, 0, 0, 0); } } var endDateTime = dateRangeField.EndDate; if (dateRangeField.InclusiveStart) { if (endDateTime != DateTime.MaxValue) { endDateTime = endDateTime.ChangeTime(23, 59, 59, 59); } } BooleanQuery.SetMaxClauseCount(int.MaxValue); if (!(dateRangeField.StartDate == DateTime.MinValue && dateRangeField.EndDate == DateTime.MaxValue)) { query.Add(new RangeQuery(new Term(SearchFieldIDs.CreatedDate, startDateTime.ToString("yyyyMMdd")), new Term(SearchFieldIDs.CreatedDate, endDateTime.ToString("yyyyMMdd")), true), occurance); } }
protected void AddDateRangeQuery(BooleanQuery query, DateRangeSearchParam.DateRangeField dateRangeField, BooleanClause.Occur occurance) { var startDateTime = dateRangeField.StartDate; if (dateRangeField.InclusiveStart) { startDateTime = startDateTime.AddDays(1); } var startDate = startDateTime.ToString(IndexConstants.DateTimeFormat); var endDateTime = dateRangeField.EndDate; if (dateRangeField.InclusiveStart) { endDateTime = endDateTime.AddDays(1); } var endDate = endDateTime.ToString(IndexConstants.DateTimeFormat); var rangeQuery = new RangeQuery(new Term(dateRangeField.FieldName, startDate), new Term(dateRangeField.FieldName, endDate), true); query.Add(rangeQuery, occurance); }