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; // // 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; }
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; // // 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; }
public datawave.query.language.tree.QueryNode build(QueryNode queryNode) throws QueryNodeException { datawave.query.language.tree.QueryNode returnNode = null; SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; datawave.query.language.tree.QueryNode node = (datawave.query.language.tree.QueryNode) phraseSlopNode.getChild().getTag( QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (node instanceof AdjNode) { datawave.query.language.tree.QueryNode[] nodeArray = new datawave.query.language.tree.QueryNode[node.getChildren().size()]; returnNode = new WithinNode(phraseSlopNode.getValue(), node.getChildren().toArray(nodeArray)); } else if (node instanceof SelectorNode) { // if phrase only contained one word, a SelectorNode would be created // and then a SlopQueryNode / within makes no sense returnNode = node; } else { throw new UnsupportedOperationException(node.getClass().getName() + " found as a child of a SlopQueryNode -- not implemented"); } return returnNode; }
public JexlNode build(QueryNode queryNode) throws QueryNodeException { JexlNode returnNode = null; SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; JexlNode node = (JexlNode) phraseSlopNode.getChild().getTag(QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (node instanceof JexlPhraseNode) { JexlPhraseNode phraseNode = (JexlPhraseNode) node; returnNode = new JexlWithinNode(phraseNode.getField(), phraseNode.getWordList(), phraseSlopNode.getValue()); } else if (node instanceof JexlSelectorNode) { // if phrase only contained one word, a JexlSelectorNode would be created // and then a SlopQueryNode / within makes no sense returnNode = node; } else { throw new UnsupportedOperationException(node.getClass().getName() + " found as a child of a SlopQueryNode -- not implemented"); } return returnNode; }
childNode.setTag(ORIGINAL_SLOP, slopNode.getValue()); QueryNode newChildNode = preProcessNode(childNode); if (childNode != newChildNode) {
@Override public Query build(QueryNode queryNode) throws QueryNodeException { SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; Query query = (Query) phraseSlopNode.getChild().getTag( QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (query instanceof PhraseQuery) { PhraseQuery.Builder builder = new PhraseQuery.Builder(); builder.setSlop(phraseSlopNode.getValue()); PhraseQuery pq = (PhraseQuery) query; org.apache.lucene.index.Term[] terms = pq.getTerms(); int[] positions = pq.getPositions(); for (int i = 0; i < terms.length; ++i) { builder.add(terms[i], positions[i]); } query = builder.build(); } else { ((MultiPhraseQuery) query).setSlop(phraseSlopNode.getValue()); } return query; }
@Override public Query build(QueryNode queryNode) throws QueryNodeException { SlopQueryNode phraseSlopNode = (SlopQueryNode) queryNode; Query query = (Query) phraseSlopNode.getChild().getTag( QueryTreeBuilder.QUERY_TREE_BUILDER_TAGID); if (query instanceof PhraseQuery) { PhraseQuery.Builder builder = new PhraseQuery.Builder(); builder.setSlop(phraseSlopNode.getValue()); PhraseQuery pq = (PhraseQuery) query; org.apache.lucene.index.Term[] terms = pq.getTerms(); int[] positions = pq.getPositions(); for (int i = 0; i < terms.length; ++i) { builder.add(terms[i], positions[i]); } query = builder.build(); } else { ((MultiPhraseQuery) query).setSlop(phraseSlopNode.getValue()); } return query; }
@Override protected QueryNode preProcessNode(final QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode && ((SlopQueryNode) node).getValue() != 0) { throw new QueryNodeException(new MessageImpl("Slop queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MultiPhraseQueryNode) { throw new QueryNodeException(new MessageImpl("Multi phrase queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MatchAllDocsQueryNodeBuilder) { throw new QueryNodeException(new MessageImpl("MatchAllDocsQueries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } return node; }
@Override protected QueryNode preProcessNode(final QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode && ((SlopQueryNode) node).getValue() != 0) { throw new QueryNodeException(new MessageImpl("Slop queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MultiPhraseQueryNode) { throw new QueryNodeException(new MessageImpl("Multi phrase queries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } else if (node instanceof MatchAllDocsQueryNodeBuilder) { throw new QueryNodeException(new MessageImpl("MatchAllDocsQueries are not supported", node.toQueryString(new EscapeQuerySyntaxImpl()))); } return node; }