コード例 #1
0
        /// <summary>
        /// 构造一个Not条件语句
        /// </summary>
        public static Conditional Not(ExpressionEx exp)
        {
            var conditional = new Conditional();

            conditional._queryExpression.Add(Convert(exp), BooleanClause.Occur.MUST_NOT);
            return(conditional);
        }
コード例 #2
0
        /// <summary>
        /// 构造一个Or条件语句
        /// </summary>
        public static Conditional Or(Conditional cl, Conditional cr)
        {
            var conditional = new Conditional();

            conditional._queryExpression.Add(cl._queryExpression, BooleanClause.Occur.SHOULD);
            conditional._queryExpression.Add(cr._queryExpression, BooleanClause.Occur.SHOULD);
            return(conditional);
        }
コード例 #3
0
        /// <summary>
        /// 构造一个Not条件语句
        /// </summary>
        public Conditional Not(Conditional cr)
        {
            var conditional = new Conditional();

            conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.MUST);
            conditional._queryExpression.Add(cr._queryExpression, BooleanClause.Occur.MUST_NOT);
            return(conditional);
        }
コード例 #4
0
 public Conditional And(Conditional filter)
 {
     if (filter != null)
     {
         _queryExpression.Add(filter._queryExpression, BooleanClause.Occur.MUST);
     }
     return(this);
 }
コード例 #5
0
        public Conditional Or(Conditional filter)
        {
            var conditional = new Conditional();

            conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.SHOULD);
            conditional._queryExpression.Add(filter._queryExpression, BooleanClause.Occur.SHOULD);
            return(conditional);
        }
コード例 #6
0
        public Conditional Or(ExpressionEx expl)
        {
            var conditional = new Conditional();

            conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.SHOULD);
            conditional._queryExpression.Add(Convert(expl), BooleanClause.Occur.SHOULD);
            return(conditional);
        }
コード例 #7
0
		/// <summary>
		/// 通过Lucene Query 构造Conditional
		/// </summary>
		/// <param name="query">Lucene查询</param>
		/// <returns></returns>
		public static Conditional Get(Query query)
		{
			var conditional = new Conditional();
			if (query is BooleanQuery)
			{
				foreach (object variable in ((BooleanQuery)query).Clauses())
				{
					conditional._queryExpression.Clauses().Add(variable);
				}
			}
			else
			{
				conditional._queryExpression.Add(query, BooleanClause.Occur.MUST);
			}
			return conditional;
		}
コード例 #8
0
        /// <summary>
        /// 构造一个And条件语句
        /// </summary>
        /// <param name="expl">左边条件表达式</param>
        /// <param name="expr">右边条件表达式</param>
        /// <param name="expList">右边条件表达式</param>
        /// <returns>条件语句</returns>
        public static Conditional And(ExpressionEx expl, ExpressionEx expr, params ExpressionEx[] expList)
        {
            var conditional = new Conditional();

            var booleanQuery = new BooleanQuery();

            booleanQuery.Add(Convert(expl), BooleanClause.Occur.MUST);
            booleanQuery.Add(Convert(expr), BooleanClause.Occur.MUST);

            foreach (ExpressionEx ex in expList)
            {
                booleanQuery.Add(Convert(ex), BooleanClause.Occur.MUST);
            }

            conditional._queryExpression = booleanQuery;
            return(conditional);
        }
コード例 #9
0
        /// <summary>
        /// 通过Lucene Query 构造Conditional
        /// </summary>
        /// <param name="query">Lucene查询</param>
        /// <returns></returns>
        public static Conditional Get(Query query)
        {
            var conditional = new Conditional();

            if (query is BooleanQuery)
            {
                foreach (object variable in ((BooleanQuery)query).Clauses())
                {
                    conditional._queryExpression.Clauses().Add(variable);
                }
            }
            else
            {
                conditional._queryExpression.Add(query, BooleanClause.Occur.MUST);
            }
            return(conditional);
        }
コード例 #10
0
        /// <summary>
        /// 构造一个And条件语句
        /// </summary>
        /// <param name="expl">左边条件表达式</param>
        /// <param name="expr">右边条件表达式</param>
        /// <returns>条件语句</returns>
        public static Conditional And(ExpressionEx expl, ExpressionEx expr)
        {
            var conditional = new Conditional();

            var booleanQuery = new BooleanQuery();

            Query ql = Convert(expl);

            if (ql is BooleanQuery)
            {
                foreach (object variable in ((BooleanQuery)ql).Clauses())
                {
                    booleanQuery.Clauses().Add(variable);
                }
            }
            else
            {
                booleanQuery.Add(ql, BooleanClause.Occur.MUST);
            }

            Query qr = Convert(expr);

            if (qr is BooleanQuery)
            {
                foreach (object variable in ((BooleanQuery)qr).Clauses())
                {
                    booleanQuery.Clauses().Add(variable);
                }
            }
            else
            {
                booleanQuery.Add(qr, BooleanClause.Occur.MUST);
            }

            conditional._queryExpression = booleanQuery;

            return(conditional);
        }
コード例 #11
0
		/// <summary>
		/// 构造一个And条件语句
		/// </summary>
		/// <param name="expl">左边条件表达式</param>
		/// <param name="expr">右边条件表达式</param>
		/// <returns>条件语句</returns>
		public static Conditional And(ExpressionEx expl, ExpressionEx expr)
		{
			var conditional = new Conditional();

			var booleanQuery = new BooleanQuery();

			Query ql = Convert(expl);
			if (ql is BooleanQuery)
			{
				foreach (object variable in ((BooleanQuery)ql).Clauses())
				{
					booleanQuery.Clauses().Add(variable);
				}
			}
			else
			{
				booleanQuery.Add(ql, BooleanClause.Occur.MUST);
			}

			Query qr = Convert(expr);
			if (qr is BooleanQuery)
			{
				foreach (object variable in ((BooleanQuery)qr).Clauses())
				{
					booleanQuery.Clauses().Add(variable);
				}
			}
			else
			{
				booleanQuery.Add(qr, BooleanClause.Occur.MUST);
			}

			conditional._queryExpression = booleanQuery;

			return conditional;
		}
コード例 #12
0
		public SearchResult Search(string index, string[] type, Conditional conditional, int from, int size)
		{
			return Search(index, type, conditional.Query, from, size);
		}
コード例 #13
0
		/// <summary>
		/// 构造一个Or条件语句
		/// </summary>
		public static Conditional Or(Conditional cl, Conditional cr)
		{
			var conditional = new Conditional();
			conditional._queryExpression.Add(cl._queryExpression, BooleanClause.Occur.SHOULD);
			conditional._queryExpression.Add(cr._queryExpression, BooleanClause.Occur.SHOULD);
			return conditional;
		}
コード例 #14
0
		/// <summary>
		/// 构造一个Not条件语句
		/// </summary>
		public static Conditional Not(ExpressionEx exp)
		{
			var conditional = new Conditional();
			conditional._queryExpression.Add(Convert(exp), BooleanClause.Occur.MUST_NOT);
			return conditional;
		}
コード例 #15
0
		/// <summary>
		/// 构造一个Not条件语句
		/// </summary>
		public Conditional Not(Conditional cr)
		{
			var conditional = new Conditional();
			conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.MUST);
			conditional._queryExpression.Add(cr._queryExpression, BooleanClause.Occur.MUST_NOT);
			return conditional;
		}
コード例 #16
0
		public Conditional And(Conditional filter)
		{
			if (filter != null)
			{
				_queryExpression.Add(filter._queryExpression, BooleanClause.Occur.MUST);
			}
			return this;
		}
コード例 #17
0
		public Conditional Or(Conditional filter)
		{
			var conditional = new Conditional();
			conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.SHOULD);
			conditional._queryExpression.Add(filter._queryExpression, BooleanClause.Occur.SHOULD);
			return conditional;
		}
コード例 #18
0
		public Conditional Or(ExpressionEx expl)
		{
			var conditional = new Conditional();
			conditional._queryExpression.Add(_queryExpression, BooleanClause.Occur.SHOULD);
			conditional._queryExpression.Add(Convert(expl), BooleanClause.Occur.SHOULD);
			return conditional;
		}
コード例 #19
0
		public int Count(string index, string type, Conditional conditional)
		{
			return Count(index, type, conditional.Query);
		}
コード例 #20
0
		public List<string> SearchIds(string index, string[] type, Conditional conditional, string sortString, int from,
		                              int size)
		{
			return SearchIds(index, type, conditional.Query, sortString, from, size);
		}
コード例 #21
0
		/// <summary>
		/// 构造一个And条件语句
		/// </summary>
		/// <param name="expl">左边条件表达式</param>
		/// <param name="expr">右边条件表达式</param>
		/// <param name="expList">右边条件表达式</param>
		/// <returns>条件语句</returns>
		public static Conditional And(ExpressionEx expl, ExpressionEx expr, params ExpressionEx[] expList)
		{
			var conditional = new Conditional();

			var booleanQuery = new BooleanQuery();
			booleanQuery.Add(Convert(expl), BooleanClause.Occur.MUST);
			booleanQuery.Add(Convert(expr), BooleanClause.Occur.MUST);

			foreach (ExpressionEx ex in expList)
			{
				booleanQuery.Add(Convert(ex), BooleanClause.Occur.MUST);
			}

			conditional._queryExpression = booleanQuery;
			return conditional;
		}