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;}