/// <summary> /// Determines whether [contains] [the specified node]. /// </summary> /// <param name="node">The query node.</param> /// <param name="query">The query.</param> /// <returns> /// <c>true</c> if [contains] [the specified node]; otherwise, <c>false</c>. /// </returns> protected virtual bool Contains(QueryNode node, SubQuery query) { if (node.Element.Equals(query)) { return(true); } if (node.IsQuery()) { return(this.Contains(((Query)node.Element).FirstNode, query)); } if (!node.IsLast) { return(this.Contains(node.NextNode, query)); } return(false); }
/// <summary> /// Adds the term query. /// </summary> /// <param name="query">The query.</param> /// <param name="subquery">The subquery.</param> /// <param name="condition">The condition.</param> /// <param name="isFirst">if set to <c>true</c> [is first].</param> protected virtual void AddSubQuery(LuceneSearch.BooleanQuery query, SubQuery subquery, QueryCondition condition) { string value = ID.IsID(subquery.Value) ? subquery.Value : subquery.Value.ToLower(); string key = subquery.Key.ToLower(); if (subquery is AttributeQuery) { key = this.MapAttributes(key); } // optimizing search query if (key == Sitecore.Search.BuiltinFields.ID || key == Sitecore.Search.BuiltinFields.Template || key == BuiltinFields.ProductBaseTemplate || key == Sitecore.Search.BuiltinFields.AllTemplates) { this.AddIdQuery(query, key, value, condition); } else { this.AddContentSubQuery(query, key, value, subquery.MatchVariant, condition); } }
/// <summary> /// Adds the term query. /// </summary> /// <param name="query">The query.</param> /// <param name="subquery">The subquery.</param> /// <param name="condition">The condition.</param> /// <param name="isFirst">if set to <c>true</c> [is first].</param> protected virtual void AddSubQuery(LuceneSearch.BooleanQuery query, SubQuery subquery, QueryCondition condition) { string value = ID.IsID(subquery.Value) ? subquery.Value : subquery.Value.ToLower(); string key = subquery.Key.ToLower(); if (subquery is AttributeQuery) { key = this.MapAttributes(key); } // optimizing search query if (key == Sitecore.Search.BuiltinFields.ID || key == Sitecore.Search.BuiltinFields.Template || key == BuiltinFields.ProductBaseTemplate || key == Sitecore.Search.BuiltinFields.AllTemplates) { this.AddIdQuery(query, key, value, condition); } else { this.AddContentSubQuery(query, key, value, subquery.MatchVariant, condition); } }
/// <summary> /// Determines whether [contains] [the specified node]. /// </summary> /// <param name="node">The query node.</param> /// <param name="query">The query.</param> /// <returns> /// <c>true</c> if [contains] [the specified node]; otherwise, <c>false</c>. /// </returns> protected virtual bool Contains(QueryNode node, SubQuery query) { if (node.Element.Equals(query)) { return true; } if (node.IsQuery()) { return this.Contains(((Query)node.Element).FirstNode, query); } if (!node.IsLast) { return this.Contains(node.NextNode, query); } return false; }