public static QueryContainer MakeRangeQuery(string type, string gte, string lte, string field, double boost = 1) { QueryContainer rangeQuery = null; if (type.ToLower() == "long") { rangeQuery = new LongRangeQuery() { Field = field, LessThan = long.Parse(lte), GreaterThan = long.Parse(gte), Boost = boost }; } else if (type.ToLower() == "date") { rangeQuery = new DateRangeQuery() { Field = field, LessThan = DateMath.FromString(lte), GreaterThan = DateMath.FromString(gte), Boost = boost }; } else if (type.ToLower() == "term") { rangeQuery = new TermRangeQuery() { Field = field, LessThan = lte, GreaterThan = gte, Boost = boost }; } else if (type.ToLower() == "numeric") { rangeQuery = new TermRangeQuery() { Field = field, LessThan = lte, GreaterThan = gte, Boost = boost }; } return(rangeQuery); }
/// <summary> /// 设置小于操作 /// </summary> /// <param name="condition">查询条件</param> /// <param name="max">最大值</param> protected override void SetLess(LongRangeQuery condition, long?max) => condition.LessThan = max;
/// <summary> /// 设置大于操作 /// </summary> /// <param name="condition">查询条件</param> /// <param name="min">最小值</param> protected override void SetGreater(LongRangeQuery condition, long?min) => condition.GreaterThan = min;
/// <summary> /// 设置小于等于操作 /// </summary> /// <param name="condition">查询条件</param> /// <param name="max">最大值</param> protected override void SetLessEqual(LongRangeQuery condition, long?max) => condition.LessThanOrEqualTo = max;
/// <summary> /// 设置字段 /// </summary> /// <param name="condition">查询条件</param> /// <param name="field">字段</param> protected override void SetField(LongRangeQuery condition, Field field) => condition.Field = field;