List of usage examples for org.apache.lucene.queryparser.flexible.core.builders QueryTreeBuilder QUERY_TREE_BUILDER_TAGID
String QUERY_TREE_BUILDER_TAGID
To view the source code for org.apache.lucene.queryparser.flexible.core.builders QueryTreeBuilder QUERY_TREE_BUILDER_TAGID.
Click Source Link
From source file:com.sindicetech.siren.qparser.keyword.builders.AnyQueryNodeBuilder.java
License:Open Source License
public BooleanQuery build(QueryNode queryNode) throws QueryNodeException { AnyQueryNode andNode = (AnyQueryNode) queryNode; BooleanQuery bQuery = new BooleanQuery(); 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( /* * IQQQ.Q0028E_TOO_MANY_BOOLEAN_CLAUSES, * BooleanQuery.getMaxClauseCount() *///from w w w. j a v a 2s. c o m QueryParserMessages.EMPTY_MESSAGE), ex); } } } } bQuery.setMinimumNumberShouldMatch(andNode.getMinimumMatchingElements()); return bQuery; }
From source file:com.sindicetech.siren.qparser.keyword.builders.ArrayQueryNodeBuilder.java
License:Open Source License
@Override public Query build(final QueryNode queryNode) throws QueryNodeException { final ArrayQueryNode arrayNode = (ArrayQueryNode) queryNode; final List<QueryNode> children = arrayNode.getChildren(); final ArrayQuery arrayQuery = new ArrayQuery(); for (final QueryNode child : children) { final Object v = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (v == null) { // DummyNode such as the EmptyNodeQueryNode continue; }/*w ww .ja va2s. c o m*/ if (v instanceof Query) { if (v instanceof ArrayQuery) { /* * Nested array query. It is transformed as a TwigQuery with empty root */ final TwigQuery twigQuery = new TwigQuery(); for (final Query qn : ((ArrayQuery) v).getElements()) { final NodeQuery valQuery = (NodeQuery) qn; twigQuery.addChild(valQuery, NodeQueryBuilderUtil.getModifierValue(child, NodeBooleanClause.Occur.MUST)); } arrayQuery.addElement(twigQuery); } else { arrayQuery.addElement((NodeQuery) v); } } else { throw new QueryNodeException(new MessageImpl(QueryParserMessages.INVALID_SYNTAX, "Unexpected class of a Twig Query clause: " + v == null ? "null" : v.getClass().getName())); } } return arrayQuery; }
From source file:com.sindicetech.siren.qparser.keyword.builders.BooleanQueryNodeBuilder.java
License:Open Source License
public Query build(final QueryNode queryNode) throws QueryNodeException { final BooleanQueryNode booleanNode = (BooleanQueryNode) queryNode; final BooleanQuery bQuery = new BooleanQuery(); final List<QueryNode> children = booleanNode.getChildren(); if (children != null) { for (final QueryNode child : children) { final Object obj = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { final Query query = (Query) obj; try { final QueryNode mod; if (child instanceof DatatypeQueryNode) { mod = ((DatatypeQueryNode) child).getChild(); } else { mod = child;// w w w . j av a 2 s . c om } bQuery.add(query, getModifierValue(mod)); } catch (final TooManyClauses ex) { throw new QueryNodeException(new MessageImpl(QueryParserMessages.TOO_MANY_BOOLEAN_CLAUSES, BooleanQuery.getMaxClauseCount(), queryNode.toQueryString(new EscapeQuerySyntaxImpl())), ex); } } } } return bQuery; }
From source file:com.sindicetech.siren.qparser.keyword.builders.BoostQueryNodeBuilder.java
License:Open Source License
public Query build(final QueryNode queryNode) throws QueryNodeException { final BoostQueryNode boostNode = (BoostQueryNode) queryNode; final QueryNode child = boostNode.getChild(); if (child == null) { return null; }/*from w w w . ja v a2 s. c om*/ final Query query = (Query) child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); query.setBoost(boostNode.getValue()); return query; }
From source file:com.sindicetech.siren.qparser.keyword.builders.GroupQueryNodeBuilder.java
License:Open Source License
public Query build(QueryNode queryNode) throws QueryNodeException { GroupQueryNode groupNode = (GroupQueryNode) queryNode; return (Query) (groupNode).getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); }
From source file:com.sindicetech.siren.qparser.keyword.builders.ModifierQueryNodeBuilder.java
License:Open Source License
public Query build(QueryNode queryNode) throws QueryNodeException { ModifierQueryNode modifierNode = (ModifierQueryNode) queryNode; return (Query) (modifierNode).getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); }
From source file:com.sindicetech.siren.qparser.keyword.builders.NodeBooleanQueryNodeBuilder.java
License:Open Source License
public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final NodeBooleanQueryNode booleanNode = (NodeBooleanQueryNode) queryNode; final List<QueryNode> children = booleanNode.getChildren(); final NodeBooleanQuery bq = new NodeBooleanQuery(); if (children == null) { return bq; // return empty boolean query }//from w ww. ja v a2 s .c o m // If more than one child, wrap them into a NodeBooleanQuery if (children.size() > 1) { for (final QueryNode child : children) { final Object obj = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { if (obj instanceof NodeQuery) { final QueryNode mod; if (child instanceof DatatypeQueryNode) { mod = ((DatatypeQueryNode) child).getChild(); } else { mod = child; } bq.add((NodeQuery) obj, NodeQueryBuilderUtil.getModifierValue(mod, NodeBooleanClause.Occur.SHOULD)); } else { throw new QueryNodeException( new Error("Expected NodeQuery: got '" + obj.getClass().getCanonicalName() + "'")); } } } return bq; } // If only one child, return it directly else { final Object obj = children.get(0).getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { if (obj instanceof NodeQuery) { return (NodeQuery) obj; } else { throw new QueryNodeException( new Error("Non NodeQuery query '" + obj.getClass().getCanonicalName() + "' received")); } } return bq; // return empty boolean query } }
From source file:com.sindicetech.siren.qparser.keyword.builders.NodePhraseQueryNodeBuilder.java
License:Open Source License
public NodePhraseQuery build(final QueryNode queryNode) throws QueryNodeException { final TokenizedPhraseQueryNode phraseNode = (TokenizedPhraseQueryNode) queryNode; final NodePhraseQuery phraseQuery = new NodePhraseQuery(); final List<QueryNode> children = phraseNode.getChildren(); if (children != null) { for (QueryNode child : children) { // the query node should always be a FieldQueryNode assert child instanceof FieldQueryNode; final FieldQueryNode termNode = (FieldQueryNode) child; final NodeTermQuery termQuery = (NodeTermQuery) child .getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); phraseQuery.add(termQuery.getTerm(), termNode.getPositionIncrement()); }// w ww. ja v a2s. c om } // assign the datatype. We must always have a datatype assigned. phraseQuery.setDatatype((String) queryNode.getTag(DatatypeQueryNode.DATATYPE_TAGID)); return phraseQuery; }
From source file:com.sindicetech.siren.qparser.keyword.builders.SlopQueryNodeBuilder.java
License:Open Source License
public NodePhraseQuery build(QueryNode queryNode) throws QueryNodeException { final SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; if (phraseSlopNode.getValue() != 0) throw new NotImplementedException("Slop Queries not supported in Siren yet"); return (NodePhraseQuery) phraseSlopNode.getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // TODO: To implement when siren will support slop queries // SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; ///* w w w.j a v a 2 s. c o m*/ // Query query = (Query) phraseSlopNode.getChild().getTag( // QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); // // // if (query instanceof PhraseQuery) { // ((PhraseQuery) query).setSlop(phraseSlopNode.getValue()); // // } else { // ((MultiPhraseQuery) query).setSlop(phraseSlopNode.getValue()); // } // // return query; }
From source file:com.sindicetech.siren.qparser.keyword.builders.SpanBooleanQueryNodeBuilder.java
License:Open Source License
public NodeQuery build(final QueryNode queryNode) throws QueryNodeException { final SpanBooleanQueryNode booleanNode = (SpanBooleanQueryNode) queryNode; final List<QueryNode> children = booleanNode.getChildren(); final BooleanSpanQuery bq = new BooleanSpanQuery(booleanNode.getSlop(), booleanNode.isInOrder()); if (children == null) { return bq; // return empty boolean query }// w w w . java2s . c o m // If more than one child, add them into the BooleanSpanQuery if (children.size() > 1) { for (final QueryNode child : children) { final Object obj = child.getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { if (obj instanceof SpanQuery) { bq.add((SpanQuery) obj, NodeQueryBuilderUtil.getModifierValue(child, NodeBooleanClause.Occur.SHOULD)); } else { throw new QueryNodeException(new MessageImpl( "Expected SpanQuery: got '" + obj.getClass().getCanonicalName() + "'")); } } } return bq; } // If only one child, return it directly else { final Object obj = children.get(0).getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (obj != null) { if (obj instanceof SpanQuery) { return (NodeQuery) obj; } else { throw new QueryNodeException( new Error("Non SpanQuery query '" + obj.getClass().getCanonicalName() + "' received")); } } return bq; // return empty boolean query } }