public override Query VisitNumericRangeQuery(NumericRangeQuery numericRangeq) { var field = numericRangeq.GetField(); var min = numericRangeq.GetMin(); var max = numericRangeq.GetMax(); var includesMin = numericRangeq.IncludesMin(); var includesMax = numericRangeq.IncludesMax(); ValueType oneValue = null; _text.Append(field); _text.Append(":"); string op = null; if (min == null) { op = includesMax ? "<=" : "<"; oneValue = max; } if (max == null) { op = includesMin ? ">=" : ">"; oneValue = min; } if (op == null) { _text.Append(includesMin ? '[' : '{'); _text.Append(Convert.ToString(min, CultureInfo.InvariantCulture)); _text.Append(" TO "); _text.Append(Convert.ToString(max, CultureInfo.InvariantCulture)); _text.Append(includesMax ? ']' : '}'); } else { _text.Append(op).Append(oneValue); } _text.Append(BoostToString(numericRangeq.GetBoost())); return base.VisitNumericRangeQuery(numericRangeq); }
public virtual Query VisitNumericRangeQuery(NumericRangeQuery numericRangeq) { var field = numericRangeq.GetField(); var visitedField = VisitField(field); if (field == visitedField) return numericRangeq; var min = numericRangeq.GetMin(); if (min is Int32) return NumericRangeQuery.NewIntRange(visitedField, numericRangeq.GetMin(), numericRangeq.GetMax(), numericRangeq.IncludesMin(), numericRangeq.IncludesMax()); if (min is Int64) return NumericRangeQuery.NewLongRange(visitedField, numericRangeq.GetMin(), numericRangeq.GetMax(), numericRangeq.IncludesMin(), numericRangeq.IncludesMax()); if (min is Single) return NumericRangeQuery.NewFloatRange(visitedField, (Single)numericRangeq.GetMin(), (Single)numericRangeq.GetMax(), numericRangeq.IncludesMin(), numericRangeq.IncludesMax()); if (min is Double) return NumericRangeQuery.NewDoubleRange(visitedField, (Double)numericRangeq.GetMin(), (Double)numericRangeq.GetMax(), numericRangeq.IncludesMin(), numericRangeq.IncludesMax()); throw new NotImplementedException(String.Format("VisitNumericRangeQuery with {0} minvalue is not implemented.", min.GetType().Name)); }