public BooleanQuery build(QueryNode queryNode) throws QueryNodeException {AnyQueryNode andNode = (AnyQueryNode) queryNode;BooleanQuery.Builder bQuery = new BooleanQuery.Builder();List<QueryNode> children = andNode.getChildren();if (children != null) {for (QueryNode child : children) {Object obj = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID);if (obj != null) {Query query = (Query) obj;try {bQuery.add(query, BooleanClause.Occur.SHOULD);} catch (TooManyClauses ex) {throw new QueryNodeException(new MessageImpl(QueryParserMessages.EMPTY_MESSAGE), ex);}}}}bQuery.setMinimumNumberShouldMatch(andNode.getMinimumMatchingElements());return bQuery.build();}

public virtual Query Build(IQueryNode queryNode){AnyQueryNode andNode = (AnyQueryNode)queryNode;BooleanQuery bQuery = new BooleanQuery();IList<IQueryNode> children = andNode.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, Occur.SHOULD);}catch (BooleanQuery.TooManyClausesException ex){throw new QueryNodeException(new Message(QueryParserMessages.EMPTY_MESSAGE), ex);}}}}bQuery.MinimumNumberShouldMatch = andNode.MinimumMatchingElements;return bQuery;}
