@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode) { SlopQueryNode phraseSlopNode = (SlopQueryNode) node; if (!(phraseSlopNode.getChild() instanceof TokenizedPhraseQueryNode) && !(phraseSlopNode.getChild() instanceof MultiPhraseQueryNode)) { return phraseSlopNode.getChild(); } } return node; }
@Override protected QueryNode postProcessNode(QueryNode node) throws QueryNodeException { if (node instanceof SlopQueryNode) { SlopQueryNode phraseSlopNode = (SlopQueryNode) node; if (!(phraseSlopNode.getChild() instanceof TokenizedPhraseQueryNode) && !(phraseSlopNode.getChild() instanceof MultiPhraseQueryNode)) { return phraseSlopNode.getChild(); } } return node; }
@Override public CharSequence getField() { QueryNode child = getChild(); if (child instanceof FieldableNode) { return ((FieldableNode) child).getField(); } return null; }
@Override public void setField(CharSequence fieldName) { QueryNode child = getChild(); if (child instanceof FieldableNode) { ((FieldableNode) child).setField(fieldName); } }
@Override public CharSequence getField() { QueryNode child = getChild(); if (child instanceof FieldableNode) { return ((FieldableNode) child).getField(); } return null; }
@Override public void setField(CharSequence fieldName) { QueryNode child = getChild(); if (child instanceof FieldableNode) { ((FieldableNode) child).setField(fieldName); } }
@Override public String toString() { return "<slop value='" + getValueString() + "'>" + "\n" + getChild().toString() + "\n</slop>"; }
@Override public String toString() { return "<slop value='" + getValueString() + "'>" + "\n" + getChild().toString() + "\n</slop>"; }
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; }
QueryNode childNode = slopNode.getChild(); childNode.setTag(ORIGINAL_SLOP, slopNode.getValue()); QueryNode newChildNode = preProcessNode(childNode);
@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; }