Пример #1
0
        public QueryContainer GetQuery()
        {
            string field = LoadFieldHelper.GetFiledStr <T, TV>(this._expression);

            if (typeof(TV) == typeof(DateTime))
            {
                var rangQuery = new DateRangeQuery
                {
                    Field = field,
                    GreaterThanOrEqualTo = this._greaterThanOrEqualTo.HasValue ? DateTime.Parse(this._greaterThanOrEqualTo.Value.ToString()) : default(DateTime?),
                    GreaterThan          = this._greaterThan.HasValue ? DateTime.Parse(this._greaterThan.Value.ToString()) : default(DateTime?),
                    LessThan             = this._lessThan.HasValue ? DateTime.Parse(this._lessThan.Value.ToString()) : default(DateTime?),
                    LessThanOrEqualTo    = this._lessThanOrEqualTo.HasValue ? DateTime.Parse(this._lessThanOrEqualTo.Value.ToString()) : default(DateTime?),
                    TimeZone             = "Asia/Shanghai"
                };
                return(rangQuery);
            }
            return(new NumericRangeQuery
            {
                Field = field,
                GreaterThanOrEqualTo = this._greaterThanOrEqualTo.HasValue ? double.Parse(this._greaterThanOrEqualTo.Value.ToString()) : default(double?),
                GreaterThan = this._greaterThan.HasValue ? double.Parse(this._greaterThan.Value.ToString()) : default(double?),
                LessThan = this._lessThan.HasValue ? double.Parse(this._lessThan.Value.ToString()) : default(double?),
                LessThanOrEqualTo = this._lessThanOrEqualTo.HasValue ? double.Parse(this._lessThanOrEqualTo.Value.ToString()) : default(double?)
            });
        }
Пример #2
0
        public QueryContainer GetQuery()
        {
            string field = LoadFieldHelper.GetFiledStr <T, TV>(this._expression);

            return(new TermsQuery
            {
                Field = field,
                Terms = this._values.Select(x => (object)x)
            });
        }
        /// <summary>
        /// 对某个字段正向排序
        /// </summary>
        /// <typeparam name="TKey">正向排序字段类型</typeparam>
        /// <param name="expression">lamda表达式</param>
        /// <returns></returns>
        public IExactValueSearchCondition <T> OrderBy <TKey>(Expression <Func <T, TKey> > expression)
        {
            if (this.Sort == default(List <FieldSort>))
            {
                this.Sort = new List <FieldSort>();
            }
            string field = LoadFieldHelper.GetFiledStr <T, TKey>(expression);

            this.Sort.Add(new FieldSort
            {
                Field = field,
                isAsc = true
            });
            return(this);
        }
 /// <summary>
 /// 设置查询条件
 /// </summary>
 /// <param name="value">查询的值</param>
 /// <param name="searchKeyExpressions">查询字段表达式</param>
 /// <returns></returns>
 public IFullTextSearchCondition <T> Where(string value, params Expression <Func <T, string> >[] searchKeyExpressions)
 {
     this.SearchFields = searchKeyExpressions.Select(x => LoadFieldHelper.GetFiledStr <T, string>(x)).ToArray();
     this.SearchValue  = value;
     return(this);
 }
Пример #5
0
        public QueryContainer GetQuery()
        {
            string field = LoadFieldHelper.GetFiledStr <T, TV>(this._expression);

            return(new QueryContainerDescriptor <T>().Term(field, this._value));
        }