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) { // LUCENENET: Factored out NLS/Message/IMessage so end users can optionally utilize the built-in .NET localization. throw new QueryNodeException( /* * IQQQ.Q0028E_TOO_MANY_BOOLEAN_CLAUSES, * BooleanQuery.getMaxClauseCount() */ QueryParserMessages.EMPTY_MESSAGE, ex); } } } } bQuery.MinimumNumberShouldMatch = andNode.MinimumMatchingElements; return(bQuery); }
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, BooleanClause.Occur.SHOULD); } catch (BooleanQuery.TooManyClauses ex) { throw new QueryNodeException(new MessageImpl( /* * IQQQ.Q0028E_TOO_MANY_BOOLEAN_CLAUSES, * BooleanQuery.getMaxClauseCount() */QueryParserMessages.EMPTY_MESSAGE), ex); } } } } bQuery.MinimumNumberShouldMatch = andNode.MinimumMatchingElements; return(bQuery); }