public virtual Query Build(IQueryNode queryNode) { BooleanQueryNode booleanNode = (BooleanQueryNode)queryNode; BooleanQuery bQuery = new BooleanQuery(); IList <IQueryNode> children = booleanNode.GetChildren(); if (children != null) { foreach (IQueryNode child in children) { object obj = child.GetTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { Query query = (Query)obj; try { bQuery.Add(query, GetModifierValue(child)); } catch (BooleanQuery.TooManyClausesException ex) { // LUCENENET: Factored out NLS/Message/IMessage so end users can optionally utilize the built-in .NET localization. throw new QueryNodeException(string.Format( QueryParserMessages.TOO_MANY_BOOLEAN_CLAUSES, BooleanQuery .MaxClauseCount, queryNode .ToQueryString(new EscapeQuerySyntax())), ex); } } } } return(bQuery); }
public virtual Query Build(IQueryNode queryNode) { BooleanQueryNode booleanNode = (BooleanQueryNode)queryNode; BooleanQuery bQuery = new BooleanQuery(); IList <IQueryNode> children = booleanNode.GetChildren(); if (children != null) { foreach (IQueryNode child in children) { object obj = child.GetTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { Query query = (Query)obj; try { bQuery.Add(query, GetModifierValue(child)); } catch (BooleanQuery.TooManyClausesException ex) { throw new QueryNodeException(new Message( QueryParserMessages.TOO_MANY_BOOLEAN_CLAUSES, BooleanQuery .MaxClauseCount, queryNode .ToQueryString(new EscapeQuerySyntax())), ex); } } } } return(bQuery); }
public virtual Query Build(IQueryNode node) { // validates node BooleanQueryNode booleanNode = (BooleanQueryNode)node; IList <IQueryNode> children = booleanNode.GetChildren(); SpanQuery[] spanQueries = new SpanQuery[children.size()]; int i = 0; foreach (IQueryNode child in children) { spanQueries[i++] = (SpanQuery)child .GetTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); } return(new SpanOrQuery(spanQueries)); }